我是Qt的新手,我试图创建一个简单的GUI应用程序,一旦点击了按钮就会显示图像。用QtGui显示QImage
我可以读取QImage
对象中的图像,但有没有简单的方法可以调用Qt函数,将QImage
作为输入并显示它?
我是Qt的新手,我试图创建一个简单的GUI应用程序,一旦点击了按钮就会显示图像。用QtGui显示QImage
我可以读取QImage
对象中的图像,但有没有简单的方法可以调用Qt函数,将QImage
作为输入并显示它?
感谢所有,我发现如何做到这一点,这是一样的戴夫和Sergey:
我使用Qt创建者:
在主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
。
一种常见的方法是使用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();
}
简单,但完整的例子说明如何显示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
小部件拖放到您的用户界面上并将其命名(在下面的代码中将其命名为)。在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);
}
谢谢。我很想知道自己做的这种做法不太方便。也许我很奇怪,但我认为一个标签应该是一个标签,而不是一张图片。 – Tyler 2014-06-20 08:47:23
这对于每秒显示大量图像来说似乎并不方便: – 2017-03-02 21:12:34
非常感谢,这是工作非常精细,我只是把它移到了按钮的回调中。 – Karim 2010-12-17 20:39:41