【发布时间】:2015-11-25 14:41:07
【问题描述】:
我正在学习如何使用 Qt 进行 C++ 编程。当我单击一个按钮并且与该按钮相关的矩阵上的位置等于-1时,我想要显示这个图像,我还想清除同一个按钮上的文本,我的代码到现在为止部分是:
if(Tabuleiro[x][y] == -1){
this->Botoes[x][y]->setText("");
this->Botoes[x][y]->setIcon(QIcon("bomba.png"));
}
Tabuleiro 是一个 int 矩阵,Botoes 是一个指向 QPushButtons 的指针矩阵,而“bomba.png”是我想要显示的图像。该图像与项目位于同一文件夹中,但是一旦我运行它就不会显示。我还尝试使用 Qt 资源系统,我在其上创建了一个名为 imagens.qrc 的新资源我创建了一个前缀 /Imagem 并将我的图像放在那里,这就是代码之后的样子:
if(Tabuleiro[x][y] == -1){
this->Botoes[x][y]->setText("");
this->Botoes[x][y]->setIcon(QIcon(":/Imagem/bomba.png"));
}
但它仍然无法正常工作。我究竟做错了什么?另外,我尝试使用
this->Botoes[x][y]->text().clear();
而不是
this->Botoes[x][y]->setText("");
但它不起作用,你知道为什么吗?
【问题讨论】:
-
确保您的应用程序工作目录中的PNG(可执行文件所在的位置)。
-
@Archie 工作目录与可执行目录不同
-
@joão-areias 考虑使用Qt资源系统doc.qt.io/qt-5/resources.html
-
谢谢 Archie,不是这样,但还是没有解决
-
感谢@KamilKlimek 我刚刚尝试使用 Qt 资源,但仍然没有工作:(