【问题标题】:QPixmap don't show my pictureQPixmap 不显示我的图片
【发布时间】:2013-07-16 16:42:21
【问题描述】:

我正在尝试使用 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");

【问题讨论】:

  • 我可能是错的,但我认为这是因为 QLabel 不能同时包含文本和像素图。
  • 我尝试不显示文字,但它仍然不想显示图片。

标签: c++ qt qpixmap


【解决方案1】:

问题在于:

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

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

更新: 如果删除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()找到需要的目录,把你的文件放在那里。

【讨论】:

  • 谢谢你的回答,但似乎不是这个问题,我刚刚删除了这个 lign 但图片仍然不想显示。
  • @DanSnow 只注释掉了page2-&gt;setText("Alpha version 1.0"); ?顺便更新一下答案。
  • 是的,我说的是这个 lign page2->setText("Alpha version 1.0");
  • @DanSnow 更新了答案,可能像素图在错误的目录中
  • 我应该把图片放在哪个目录下?我几乎在每个文件夹中都尝试过,但它不起作用。 (我使用 Qt 5.1.0 和 Qt creator 2.7.2)
猜你喜欢
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 2015-07-15
相关资源
最近更新 更多