簡體   English   中英

用QtGui顯示QImage

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM