用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
,将如下所示的private
variables添加到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
。