[英]Display QImage with QtGui
我是Qt的新手,我正在尝试创建一个简单的GUI应用程序,一旦点击按钮就会显示图像。
我可以在QImage
对象中读取图像,但是有没有简单的方法来调用Qt函数将QImage
作为输入并显示它?
简单但完整的示例显示如何显示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
变量添加到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创建并创建标签(例如“myLabel”)
在按钮的回调中(单击)使用指向用户界面窗口的(* 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
转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.