我想在Qt UI中显示.jpg图像。我在网上查了一下,发现http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html。我认为Graphics View也会这样做,而且它还有编解码器来显示视频。如何使用Graphics View显示图像?我经历了图书馆,但因为我是Qt的全新人,所以我找不到开头的线索。你能指导一下如何在Qt中加载和显示图像的资源/例子吗?
感谢。
答案 0 :(得分:41)
您可以将图像(作为像素图)附加到标签,然后将其添加到您的布局......
...
QPixmap image("blah.jpg");
QLabel imageLabel = new QLabel();
imageLabel.setPixmap(image);
mainLayout.addWidget(imageLabel);
...
道歉,这是使用Jambi(Qt for Java)所以语法不同,但理论是一样的。
答案 1 :(得分:39)
#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();
}
这应该有效。 :)支持的格式列表可以是found here
答案 2 :(得分:12)
如果您想要做的唯一事情是将图像放入窗口小部件而不需要图形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)); ... }
答案 3 :(得分:4)
我想在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();
}
答案 4 :(得分:3)
将Label(QLabel)添加到要显示图像的对话框中。这个QLabel实际上会显示图像。将其大小调整为您希望图像显示的大小。
将图片添加到项目中的资源中。
现在进入QLabel属性并选择您为 pixmap 属性添加到资源的图像。请务必检查下一个属性 scaledContents ,以缩小您想要查看的尺寸的图片。
总而言之,图像现在会显示出来。
答案 5 :(得分:2)
我理解你的沮丧“图形视图小部件”不是最好的方法,是的,它可以完成,但它几乎与使用标签(你想要的任何方式)完全一样现在所有的方式列出的确有效......但
对于你和其他任何可能遇到这个问题的人来说,他最简单的方法就是这样做(你有什么问题)就是这样。
QPixmap pix("Path\\path\\entername.jpeg");
ui->label->setPixmap(pix);
}
答案 6 :(得分:1)
使用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();
}