Qt显示图片的控件有很多,QLabel,QPushButton等。QOpenGLWidget是Qt5之后用来渲染OpenGL控件,使程序员对OpenGL的操作更简单,本文讲解用QOpenGLWidget来显示图片,当然QOpenGLWidget也可以来显示视频。
下面介绍如何显示图片,基本步骤如下:
1.在控件栏找到OpenGLWidget,拖到界面上
2. 右键该控件提升为MyGLWidget, Qt提升控件类似于MFC的控件重载,如何提升控件自行百度,添加Qt类MyGLWidget,使其派生于QOpenGLWidget,头文件如下:
#pragma once
#include
class MyGLWidget : public QOpenGLWidget
{
Q_OBJECT
public:
MyGLWidget(QWidget *parent);
~MyGLWidget();
//重写paintEvent方法
void paintEvent(QPaintEvent *e);
};
MyGLWidget.cpp如下:
#include "MyGLWidget.h"
#include
MyGLWidget::MyGLWidget(QWidget *parent)
: QOpenGLWidget(parent)
{
}
MyGLWidget::~MyGLWidget()
{
}
void MyGLWidget::paintEvent(QPaintEvent *e)
{
QPainter painter;
painter.begin(this);
QImage img;
img.load("1.jpg");
painter.drawImage(QPoint(0, 0), img);
painter.end();
}
运行结果如下:
这里我把控件的大小和图片的大小设的一样,所以显示的均匀,不然只会显示一部分,后续博客继续更新。有什么好的方法实现图片自适应控件大小,请各位大佬帮忙回复。