我是QT的新手,我正在尝试创建一个简单的GUI应用程序,一旦单击一个按钮,它就会显示图像。

我可以在 QImage 对象,但是是否有任何简单的方法来调用QT功能 QImage 作为输入,并显示它?

有帮助吗?

解决方案 4

谢谢大家,我找到了如何做,这与Dave和Sergey一样:

我正在使用QT创建者:

在主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);
}

其他提示

简单但完整的示例,显示如何显示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创建者中,拖动 Graphics View 窗口小部件在您的UI上并命名一些东西(它是命名的 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 小部件使用 QLabel::setPixmap(), ,然后显示 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();
}

我所知道的, QPixmap 用于显示图像和 QImage 阅读它们。有 QPixmap::convertFromImage()QPixmap::fromImage() 转换的功能 QImage.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top