Qt的JPG图像显示(Qt jpg image display)

2019-06-21 08:04发布

我想在Qt的UI显示.JPG图像。 我在网上查了一下,发现http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html 。 我以为图形视图会做同样的,也有编解码器显示视频。 如何使用图形视图来显示图像? 我在图书馆去了,但因为我在Qt的一个完全的新手,我无法找到一个线索开始。 你能告诉我如何在Qt的加载和显示图像的一些资源/例子吗?

谢谢。

Answer 1:

#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();
}

这应该工作。 支持的格式:)列表可以在这里找到



Answer 2:

您可以将图像(如像素图)附着到标签然后添加到您的布局?

...

QPixmap image("blah.jpg");

QLabel imageLabel = new QLabel();
imageLabel.setPixmap(image);

mainLayout.addWidget(imageLabel);

...

道歉,这是使用占碑(QT为Java),所以语法不同,但原理是一样的。



Answer 3:

如果你想要做的唯一事情是下降的图像到一个小部件的withouth的图形API的复杂性,你也可以只创建一个新的QWidget并设置与样式表的背景。 事情是这样的:

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));
    ...
}


Answer 4:

我想在Qt的UI显示.JPG图像

该simpliest的方法是,请使用QLabel此:

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QLabel label("<img src='image.jpg' />");
    label.show();
    return a.exec();
}


Answer 5:

  1. 添加标签(一个QLabel)到你要显示的图像的对话框。 这QLabel将实际显示图像。 它调整到你想要的形象出现的大小。

  2. 图像添加到您的资源在项目中。

  3. 现在进入QLabel属性,然后选择你要添加的资源属性像素映射图像。 确保检查的下一个属性scaledContents萎缩在你想看到它的大小的图像。

这一切,现在图像会显示出来。



Answer 6:

我理解你的无奈“图形视图部件”是不是要做到这一点的最好办法,是的,它是可以做到的,但它几乎完全一样,使用标签(你想要的任何方式)现在上市的所有方式做工作但...

对于你和任何其他人可能会遇到这个问题,他最简单的方式做到这一点(你问任何方式)是这样的。

QPixmap pix("Path\\path\\entername.jpeg");
    ui->label->setPixmap(pix);

}



Answer 7:

使用QPainterQImage画上一个窗口小部件( 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();
}


文章来源: Qt jpg image display