【发布时间】:2013-07-14 00:35:54
【问题描述】:
我正在处理一个项目,该项目在一组中有 40 个可检查按钮,我希望一个按钮的图标根据我定义的值进行更改。我没有创建新按钮,只是更改当前按钮的图标。所以我尝试改变一个按钮的图标来测试它。
这是我当前的代码:
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 是我的按钮。
我做错了什么?或者更好的是,我什至可以更改现有按钮的图标吗?
感谢您的宝贵时间:)
【问题讨论】:
-
检查
b1d0.isNull()是否返回true。如果是这样,那么它没有找到图像文件或无法读取它。 -
有趣。是的,但是我直接从资源文件中复制了路径?我会继续搞砸的。
-
所以我直接在我的 C: 驱动器上更改了图片文件的路径。它保持为空。你认为我不能将 png 放入像素图或其他东西中吗?
-
尝试使用其他图像文件。还要检查
QFile::exists("...")的返回。 -
您使用的是哪个编译器?在 MSVC 上,您需要将
Q_INIT_RESOURCE(res);添加到main()的开头,其中 res 是 .qrc 文件的名称(没有 .qrc)。使用 GCC,它就可以工作。
标签: c++ qt icons qpushbutton