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 がファイルを読み込むための「プラグイン」をロードする方法に関係しています。1 つのオプションは、これらのプラグインを (異なるファイル形式に対して) 有効にしてから、それらに対してリンクすることです。

代わりに、Gdiplus::Bitmap (windows から) を使用してファイルをロードし、そこから QPixmap が使用できる HBITMAP を作成しました。

于 2012-04-16T03:47:04.417 に答える