私は 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
は、私には少し面倒に思えます。QGraphicsView
Qt の新しいバージョンでは、ウィジェットを使用できます。Qt Creator で、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
一般的な方法の 1 つは、を使用して画像をウィジェットに追加し、他のウィジェットと同じよう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();
}
おかげで、私はそれを行う方法を見つけました.DaveとSergeyと同じです:
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