我想在Qt的UI显示.JPG图像。 我在网上查了一下,发现http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html 。 我以为图形视图会做同样的,也有编解码器显示视频。 如何使用图形视图来显示图像? 我在图书馆去了,但因为我在Qt的一个完全的新手,我无法找到一个线索开始。 你能告诉我如何在Qt的加载和显示图像的一些资源/例子吗?
谢谢。
我想在Qt的UI显示.JPG图像。 我在网上查了一下,发现http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html 。 我以为图形视图会做同样的,也有编解码器显示视频。 如何使用图形视图来显示图像? 我在图书馆去了,但因为我在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();
}
这应该工作。 支持的格式:)列表可以在这里找到
您可以将图像(如像素图)附着到标签然后添加到您的布局?
...
QPixmap image("blah.jpg");
QLabel imageLabel = new QLabel();
imageLabel.setPixmap(image);
mainLayout.addWidget(imageLabel);
...
道歉,这是使用占碑(QT为Java),所以语法不同,但原理是一样的。
如果你想要做的唯一事情是下降的图像到一个小部件的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)); ... }
我想在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();
}
添加标签(一个QLabel)到你要显示的图像的对话框。 这QLabel将实际显示图像。 它调整到你想要的形象出现的大小。
图像添加到您的资源在项目中。
现在进入QLabel属性,然后选择你要添加的资源属性像素映射图像。 确保检查的下一个属性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();
}