2

我正在努力将自定义图标添加到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 上。

4

1 回答 1

0

出于某种原因,在一行中做所有事情时,它应该有:

 dragButton->setIcon(QIcon(QPixmap(resourcePath)));
于 2013-07-22T18:08:41.723 回答