Dtk Reference Documentation

DTK(Deepin Toolkit)

DTK(Deepin Toolkit,https://github.com/linuxdeepin/dtkwidget/)是深度操作系统(现UOS)提供的一套应用程序开发框架。 其前身为Deepin UI项目以及后来的DUI项目,这两个项目均为在深度操作系统的桌面环境、原创应用开发的过程中积累的一些常见工具类和控件库。 大多数的DDE(Deepin Desktop Environment)应用(“深度终端”除外)都使用Qt+DTK作为基础开发库。 DTK的历史起源、发展,和简单入门

DTK模块

DTK目前分为三个模块,dtkcore、dtkgui,dtkwidget,主要功能如下:

项目功能描述
dtkcore提供应用程序开发中的工具类,如程序日志、文件系统监控、格式转换等工具类
dtkgui包含了开发图形用户界面应用程序所需的功能。主要是控制窗口主题这种外观性,调色板等信息。
dtkwidget提供各种dtk基础控件,方便开发统一风格的应用。

授权模式

DTK开放源代码,并且提供自由软件的用户协议LGPLv3 允许企业与软件开发者使用,或将LGPL授权的软件集成至他们自己的软件内(即使该软件是私有软件也被允许),同时不会受到Copyleft特性的许可证强制对软件开源的限制。

支持平台

使用DTK开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。会自动依平台的不同,表现平台特有的图形界面风格。 Linux/X11:用于X Window System(如uos/debian)、(windows/mac)

DTK 的hello world

 #include <DApplication>
 #include <DMainWindow>
 #include <DTitlebar>
 DWIDGET_USE_NAMESPACE // using dtkwidget namespace

 int main(int argc, char *argv[])
 {
     DApplication app(argc, argv);
     QIcon icon = QIcon::fromTheme("face-smile");
     app.setApplicationVersion("1.0.0");// 设置(关于中显示)版本号
     app.setProductName("dtk-dialog-demo");// 设置(关于中显示)产品名称
     app.setProductIcon(icon); // 设置(关于中显示)产品icon
     DMainWindow w;
     w.titlebar()->setIcon(icon); //设置标题栏左上角icon
     w.show();
     return app.exec();
 }

编译与运行

新建一个文件夹,命名为hello,将代码hello.cpp放入hello文件夹 在hello文件夹运行下列命令

 1. qmake -project
 2. 编辑 .pro 文件,加上下面代码
    CONFIG += link_pkgconfig
    QT += core gui widgets
    PKGCONFIG += dtkwidget
 3. qmake
 4. make
 5. 执行 ./hello