用QtGui显示QImage

我是Qt的新手,我试图创build一个简单的GUI应用程序,一旦点击一个button就显示一个图像。

我可以读取QImage对象中的图像,但有没有简单的方法来调用一个QI函数作为input,并显示它?

显示如何显示QImage的简单但完整的示例可能如下所示:

 #include <QtGui/QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc, argv); QImage myImage; myImage.load("test.png"); QLabel myLabel; myLabel.setPixmap(QPixmap::fromImage(myImage)); myLabel.show(); return a.exec(); } 

使用QLabel绘制图像对我来说似乎有点混乱。 使用更新版本的Qt,你可以使用QGraphicsView小部件。 在Qt Creator中,将一个Graphics View小部件拖放到您的UI上,并将其命名mainImage在下面的代码mainImage其命名为mainImage )。 在mainwindow.h ,将如下所示的privatevariables添加到MainWindow类中:

 QGraphicsScene *scene; QPixmap image; 

然后只需编辑mainwindow.cpp并使构造函数如下所示:

 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); image.load("myimage.png"); scene = new QGraphicsScene(this); scene->addPixmap(image); scene->setSceneRect(image.rect()); ui->mainImage->setScene(scene); } 

一个常见的方法是使用QLabel::setPixmap()将图像添加到QLabel小部件,然后像显示其他小部件一样显示QLabel 。 例:

 #include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPixmap pm("your-image.jpg"); QLabel lbl; lbl.setPixmap(pm); lbl.show(); return app.exec(); } 

谢谢所有,我发现如何做,这是一样的戴夫和谢尔盖:

我正在使用QT Creator:

在主GUI窗口中使用拖放GUI创build标签(例如“myLabel”)

在button的callback(单击)中,使用(* ui)指针指向用户界面窗口执行以下操作:

 void MainWindow::on_pushButton_clicked() { QImage imageObject; imageObject.load(imagePath); ui->myLabel->setPixmap(QPixmap::fromImage(imageObject)); //OR use the other way by setting the Pixmap directly QPixmap pixmapObject(imagePath"); ui->myLabel2->setPixmap(pixmapObject); } 

据我所知, QPixmap用于显示图像和QImage来读取它们。 有QPixmap::convertFromImage()QPixmap::fromImage()函数来转换QImage