2013-07-14 689 views
0

我正在开发一个项目,其中有40个可选按钮,我希望一个按钮的图标根据我定义的值进行更改。我没有创建一个新的按钮,只是改变当前的图标。所以我通过尝试更改一个按钮的图标来测试它。(Qt C++)QPushButton setIcon()不起作用

这里是我当前的代码:

QPixmap b1d0(":/textures/blocks/textures/blocks/stone.png"); 

QIcon ButtonIcon(b1d0); 
ui->slot_0->setIcon(ButtonIcon); 
ui->slot_0->setIconSize(b1d0.rect().size()); 

资源路径是直接从我的资源文件复制所以它是正确的,我已经用它搞砸像疯了似的,但没有改变所以......

slot_0是我的pushButton。

我做错了什么?或者更好的是,我甚至允许更改现有pushButton的图标?

感谢您的时间:)

+0

检查'b1d0.isNull()'返回TRUE。如果是这样,那么它不会找到图像文件或无法读取它。 –

+0

有趣。这是真的,但我直接从我的资源文件复制路径?我会一直搞乱它的。 – mrg95

+0

所以我直接在C:驱动器上将路径更改为图片文件。它保持为空。你认为我不能将png放入pixmap或其他东西吗? – mrg95

回答

1

如果你是在Windows上使用MSVC的编译器,并且想要使用Qt的资源系统,您将需要

Q_INIT_RESOURCE(res) 

增加的main()开始,其中res是没有“.qrc”的.qrc文件的名称。

为了得到这个完整视图,看看这个要点:

https://gist.github.com/alexreinking/5992821