QOpenGLWidget显示图片

      Qt显示图片的控件有很多,QLabel,QPushButton等。QOpenGLWidget是Qt5之后用来渲染OpenGL控件,使程序员对OpenGL的操作更简单,本文讲解用QOpenGLWidget来显示图片,当然QOpenGLWidget也可以来显示视频。

方法如下:

1.在控件栏找到OpenGLWidget,拖到界面上

QOpenGLWidget显示图片_第1张图片

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

运行结果如下:

QOpenGLWidget显示图片_第2张图片

       这里我把控件的大小和图片的大小设的一样,所以显示的均匀,不然只会显示一部分,后续博客继续更新。有什么好的方法实现图片自适应控件大小,请各位大佬帮忙回复。

你可能感兴趣的:(Qt开发进阶教程)