不知道 为什么
CONFIG += c++11 link_pkgconfig
PKGCONFIG += dtkwidget
这里找不到头文件 也许 pkgconfig 没有正确安装
所以使用
在pro 追加
QT += dtkcore dtkwidget
解决头文件问题 因为之前编译dtk 是静态编译 这里需要加入
!isEmpty(DTK_STATIC_LIB){
DEFINES += DTK_STATIC_LIB
}
注释这句
#!system($$PWD/translate_generation.sh): error("Failed to generate translation")
qmake 加入 DTK_STATIC_LIB=YES
编译遇到错误
在iconbutton.cpp 中 发现windows 平台
DSvgRenderer 没有 toImage 函数 dtkWIDGET svg转QImage 使用了 librsvg cairo 做渲染用 我们去除
void IconButton::setIconSize(const int &size)
{
const int scaledSize = size * devicePixelRatioF();
const QSize iconSize(scaledSize, scaledSize);
#ifdef Q_OS_LINUX
const QImage image = m_iconRenderer->toImage(iconSize);
#else
// QImage image(iconSize, QImage::Format_ARGB32);
// image.fill(0x0);
//两种都行看不出区别
QImage image(iconSize, QImage::Format_ARGB32_Premultiplied);
image.fill(Qt::transparent);
QPainter painter(&image);
m_iconRenderer->render(&painter);
#endif
最终编译成功 效果
简单的看了一下 这 计算器 dtk windows作用不是很大 DApplication 最终样式还是读取自己的,加载主题通知一下dtk 应该是为了 跟linux 下 x11 dbus通讯让桌面环境修改标题栏 样式