Qt标签::setPixmap不工作

Qt Label::setPixmap not working

本文关键字:工作 setPixmap Qt 标签      更新时间:2023-10-16

简单,我试图在一个简单的Qt GUI应用程序中显示图像。我有这样的代码:

ui->label_2->setVisible(true);
QPixmap supremect(":/images/supremecourt.jpg");
ui->label_2->setPixmap(supremect);
if(supremect.isNull())
{
    QMessageBox err(this);
    err.setText("File null");
    err.exec();
}
building=SPCT; // A flag
ui->label_2->show();

它可以完美地编译,但是当我运行它时,什么都没有显示。我确定图片存在于资源中,我做错了什么?

编辑:转换为PNG没有帮助

Try

QPixmap p;
QString str = ":/images/supremecourt.jpg";
bool retVal = p.load(str);
if(retVal == false)
{
    qDebug() << "Failed to load image!";
    foreach(const QByteArray &fmt, QImageReader::supportedImageFormats())
    {
        qDebug() << QString(fmt);
        // if this doesn't list jpeg then you don't have 
        // the plugin in your imageformats folder.
    }
    if( !QFile::exists(str) )
    {
        qDebug() << "File" << str << "doesn't exist!";
    }
}

http://qt project.org/doc/qt - 4.8 -/- qpixmap.html #负荷

http://qt project.org/doc/qt - 4.8 -/- qfile.html #存在

如果它没有加载,那么你的程序可能没有访问正确的插件,或者文件不存在于你认为它存在的地方。

jpeg插件的dll名为qjpeg4.dll,应该位于./imageformats/

希望对你有帮助。

您是否正确地将图像(:/images/supremeccourt .jpg)添加到资源文件中?如果你不是,看看这个。你能发布你的资源文件的结构吗?

  1. 从一些IDE (Qt Creator)运行它并检查日志。

  2. 确保jpg插件已加载

  3. 确保其他东西不会改变标签的内容(例如setText将清除pixmap)