1

我正在尝试使用 QPixmap 在 QLabel 上显示图片,但图像未显示。有人可以帮助我吗?

onglets = new QTabWidget(this);    //création des onglets
page1 = new QWidget;  //création de la page 1
page2 = new QLabel; //création de la page 2

page1->setLayout(layoutPrincipal); //insere le layoutprincipale dans la page 1
page2->setPixmap(QPixmap("1.png"));
page2->setText("Alpha version 1.0");
onglets->addTab(page1, "Creation de compte"); //ajoute la page 1 dans les onglets
onglets->addTab(page2, "A propos");
4

1 回答 1

0

问题在于:

page2->setPixmap(QPixmap("1.png"));
page2->setText("Alpha version 1.0");

QLabel 不能同时具有文本和像素图选项,因此,当您设置文本时,会删除 QPixmap。为避免这种情况,您可以为 QTabWidget 的第二个选项卡创建新的 QWidget,添加 2 个 QLabel,其中 1 个具有文本和第二个 - 像素图。

更新:如果删除page2->setText("Alpha version 1.0");QPixmap 后仍然不存在,请尝试找出是否存在文件“1.p​​ng”。试试这个,以确定文件是否存在以及它在您期望的位置

qDebug()<<"File exists -"<<QFileInfo("1.png").exists()<<" "<<QFileInfo("1.png").absoluteFilePath();

更新2:

当你从 QtCreator 启动它(编译它)时,你的文件应该在你的项目目录中(靠近 *.pro 文件),当你从可执行文件启动它时,它应该在它附近,如果你像“1.png”一样调用它. 顺便说一句,如果你改变你的currentWorkingDirectory- 那么接下来的问题就会出现。解决方案是将 qt 资源文件添加到项目中,并将此图像添加到资源中,并将其称为QPixmap(:/1.png");. 但是现在,您可以使用 找到所需的目录QDir::currentPath(),将您的文件放在那里。

于 2013-07-16T16:49:49.227 回答