0

我在 Windows7 上并使用 Qt SDK 4.8。尝试使用 QImage 读取文件,但它似乎没有加载。也就是说,QImage(filename) 或 QImage(filename, "PNG") 或 QImage.load(filename) 总是返回 NULL。

这是我的代码:

void MainWindow::on_actionOpen_triggered()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("Open Image"),
                                                    QDir::homePath(),
                                                    tr("Image Files (*.png *.tga *.bmp)"));

    if (!fileName.isEmpty())
    {
        targetImage = new QImage(fileName, "PNG");
        if(targetImage->isNull())
        {
            QMessageBox::information(this,
                                     tr("PhotoChop"),
                                     tr("Cannot load %1.").arg(fileName));
            return;
        }

        onScreenImage.setBackgroundRole(QPalette::Base);
        onScreenImage.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
        onScreenImage.setScaledContents(true);
        onScreenImage.setPixmap(QPixmap::fromImage(*targetImage));
    }
}

我究竟做错了什么?

4

1 回答 1

0

它与 QImage 如何加载“插件”以读取文件有关。一种选择是启用这些插件(针对不同的文件格式)然后链接它们。

虽然我只是使用 Gdiplus::Bitmap (来自 Windows)来加载文件,然后从中创建 QPixmap 可以使用的 HBITMAP。

于 2012-04-16T03:47:04.417 回答