我尝试在Qt 6.5中运行基本的OpenGL示例,其中我只创建OpenGL表面窗口。代码简短而清晰,但我看不出缺少什么...
main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setTitle("OpenGL basic");
w.resize(640,480);
w.show();
return a.exec();
}
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QOpenGLWindow>
class MainWindow : public QOpenGLWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
virtual void initializeGL();
virtual void resizeGL(int w, int h);
virtual void paintGL();
void resizeEvent(QResizeEvent *event);
void paintEvent(QPaintEvent *event);
};
#endif // MAINWINDOW_H
主窗口.cpp
- 我排除了构造函数和析构函数以外的方法,因为它们是空的。
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
{
setSurfaceType(QWindow::OpenGLSurface);
}
MainWindow::~MainWindow()
{
}
我希望我的问题很清楚,不要太长。谢谢你!
.pro文件:
QT = core gui
QT += opengl
LIBS += -lopengl32 -lglu32
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = OpenGL
TEMPLATE = app
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
下面是我得到的结果:
1条答案
按热度按时间whhtz7ly1#
经过几天的努力,我找到了自己的解决方案。
在Qt 6.5 for OpenGL中,他们使用QOpenGLWidget。
在此链接中,您可以找到有关QOpenGLWidget的文档:https://doc.qt.io/qt-6/qopenglwidget.html