设置自定义图标

时间:2013-07-16 14:39:38

标签: c++ qt icons

我正在努力为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上。

1 个答案:

答案 0 :(得分:0)

出于某种原因,当在一行中完成所有工作时,它应该具有以下功能:

 dragButton->setIcon(QIcon(QPixmap(resourcePath)));