質問
私はQTを初めて使用しており、ボタンがクリックされたら画像を表示する簡単なGUIアプリケーションを作成しようとしています。
で画像を読むことができます QImage
オブジェクトですが、を取るQT関数を呼び出す簡単な方法はありますか QImage
入力として、そしてそれを表示しますか?
解決 4
どうもありがとう、私はそれをする方法を見つけました、それはデイブやセルゲイと同じです:
私は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);
}
他のヒント
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();
}
aを使用して画像を描画します QLabel
私にとっては少しKludgeのようです。 QTの新しいバージョンでは、aを使用できます QGraphicsView
ウィジェット。 QT作成者では、ドラッグa 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);
}
1つの一般的な方法は、画像をに追加することです 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
.