我正在努力为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);
对我而言似乎几乎相当于在一行中完成。
这是在使用Qt Creator 2.0的Windows Vista上。
答案 0 :(得分:0)
出于某种原因,当在一行中完成所有工作时,它应该具有以下功能:
dragButton->setIcon(QIcon(QPixmap(resourcePath)));