Qt显示图片的控件有很多,用QLabel,或者直接在界面上画出来。QOpenGLWidget是Qt5之后用来渲染OpenGL控件,使程序员对OpenGL的操作更简单,本文讲解用QOpenGLWidget来显示图片,后续讲解用QOpenGLWidget来显示视频。
方法如下:
1.在控件栏找到OpenGLWidget,拖到界面上
2. 右键该控件提升为MyGLWidget,
Qt提升控件类似于MFC的控件重载,如何提升控件自行百度,添加Qt类MyGLWidget,使其派生于QOpenGLWidget,头文件如下:
#pragma once #include <QOpenGLWidget> class MyGLWidget : public QOpenGLWidget
{ Q_OBJECT public: MyGLWidget(QWidget *parent); ~MyGLWidget(); //重写paintEvent方法
void paintEvent(QPaintEvent *e); };
MyGLWidget.cpp如下:
#include "MyGLWidget.h" #include <QPainter> 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(); }
运行结果如下:
这里我把控件的大小和图片的大小设的一样,所以显示的均匀,不然只会显示一部分,后续博客继续更新。有什么好的方法实现图片自适应控件大小,请各位大佬帮忙回复。
热门工具 换一换