我在尝试给QToolButton
添加一个自定义图标时遇到了困难。
我有一个资源文件(在.pro文件中的RESOURCES下):
myResourceFile.qrc 包含以下内容:
/images
ICON_TEST.png
和代码
dragButton = new QToolButton(this);
QString resourcePath = ":/images/ICON_TEST.png";
QPixmap pixIcon(resourcePath); //THE LINE THAT GIVES THE ERROR!
dragButton->setIcon(QIcon(pixIcon));
我遇到了错误: 没有找到 QPixmap(QString &) 的匹配项。
我该如何将正确的路径传递给 QPixmap 对象,然后将对象传递给 setIcon()?
编辑: 刚刚确认 .png 文件存在并被 Qt 识别:
File exists - true ":/images/ICON_TEST.png"
使用:
qDebug()<<"File exists -"<<QFileInfo(":/images/ICON_TEST.png").exists()<<" "<<
QFileInfo(":/images/ICON_TEST.png").absoluteFilePath();
编辑并附上解决方案:下面是答案
问题仍然存在,为什么会出现这种情况?变量pixIcon在该类的.h文件中声明为:
QPixmap pixIcon;
并在构造函数中分配一个值:
pixIcon(resourcePath);
对我来说,这似乎是几乎等同于在一行中完成它。
这是在Windows Vista上使用Qt Creator 2.0时的情况。
dragButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_DirIcon).pixmap(128,128));
。图标应该会更改为目录的图标。 - Shf