Qt UIで.jpg画像を表示したい。オンラインで確認したところ、 http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html が見つかりました。 Graphics Viewでも同じことができると思いましたし、ビデオを表示するコーデックもあります。グラフィックスビューを使用して画像を表示する方法私はライブラリーを調べましたが、私はQtの完全な初心者であるため、最初に手がかりを見つけることができません。 Qtで画像を読み込んで表示する方法に関するリソース/例を教えてください。
ありがとう。
#include ...
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
QGraphicsPixmapItem item(QPixmap("c:\\test.png"));
scene.addItem(&item);
view.show();
return a.exec();
}
これは動作するはずです。 :)サポートされている形式のリストは こちらにあります
画像を(pixmapとして)ラベルに添付し、レイアウトに追加することができます...
...
QPixmap image("blah.jpg");
QLabel imageLabel = new QLabel();
imageLabel.setPixmap(image);
mainLayout.addWidget(imageLabel);
...
申し訳ありませんが、これはジャンビ(JavaのQt)を使用しているため、構文は異なりますが、理論は同じです。
グラフィックAPIの複雑さなしにウィジェットに画像をドロップすることだけが必要な場合は、新しいQWidgetを作成して、StyleSheetsで背景を設定することもできます。このようなもの:
MainWindow :: MainWindow(QWidget * parent):QMainWindow(parent) { ... QWidget * pic = new QWidget(this); pic-> setStyleSheet( "background-image:url(test.png)"); pic-> setGeometry(QRect(50,50,128,128)); ... }
Qt UIで.jpg画像を表示したい
最も簡単な方法は、これにQLabelを使用することです。
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QLabel label("<img src='image.jpg' />");
label.show();
return a.exec();
}
画像を表示するダイアログにラベル(QLabel)を追加します。このQLabelは実際に画像を表示します。画像を表示するサイズに変更します。
プロジェクトのリソースに画像を追加します。
次にQLabelプロパティに移動し、リソースに追加したイメージを選択してpixmapプロパティを選択します。次のプロパティscaledContentsを確認して、表示したいサイズに画像を縮小してください。
以上で、画像が表示されます。
私はあなたのフラストレーションを理解しています。「グラフィックスビューウィジェット」はこれを行うための最良の方法ではありません、はい、それはできますが、それはほとんどすべての方法が機能するようになりましたしかし...
あなたとこの質問に出くわすかもしれない他の人にとって、彼がそれをする最も簡単な方法(あなたがどんな方法でも尋ねているもの)はこれです。
QPixmap pix("Path\\path\\entername.jpeg");
ui->label->setPixmap(pix);
}
QPainter
とQImage
を使用してウィンドウウィジェット(QMainWindow
)にペイントする(別の方法)
class MainWindow : public QMainWindow
{
public:
MainWindow();
protected:
void paintEvent(QPaintEvent* event) override;
protected:
QImage image = QImage("/path/to/image.jpg");
};
// for convenience resize window to image size
MainWindow::MainWindow()
{
setMinimumSize(image.size());
}
void MainWindow::paintEvent(QPaintEvent* event)
{
QPainter Painter(this);
QRect rect = event->rect();
Painter.drawImage(rect, image, rect);
}
int main(int argc, char** argv)
{
QApplication a(argc, argv);
MainWindow mainWindow;
mainWindow.show();
return a.exec();
}