我使用的是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));
}
}
我做错了什么?
答案 0 :(得分:0)
它与QImage如何加载“插件”以读取文件有关。一个选项是启用这些插件(针对不同的文件格式),然后链接它们。
虽然我只是使用Gdiplus :: Bitmap(来自windows)加载文件,然后从中创建了一个QPixmap可以使用的HBITMAP。