2.Hello Widget
2.1.前提
搭建环境,包括:
Visual Studio
: 开发、调试等;QT
: 界面开发,使用QT封装的OpenGL;vcpkg
:包安装管理,环境配置;CMAKE
等;
2.2.Hello Widget
- 使用
QT Creator
创建项目; - 配置
cmakelists
:
(1)find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets OpenGLWidgets)
(2)target_link_libraries(GLViewer PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt6::OpenGLWidgets)
- 添加Widget类GLView,并配置
#include <QOpenGLWidget>
#include <QOpenGLFunctions_4_5_Core>
- 创建OpenGL Widget窗口,并将其类提升为新创建的 GLView;
- 创建状态栏
- 在
GLWindow
构造函数中将GLView
设置为中心窗体;
GLWindow::GLWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::GLWindow)
{
ui->setupUi(this);
setCentralWidget(ui->openGLWidget);
}
- 重写绘制相关虚函数
void GLView::initializeGL()
{
initializeOpenGLFunctions();
}
void GLView::resizeGL(int w, int h)
{
}
void GLView::paintGL()
{
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
}
- 编译,运行
Attention
提示: #include <glview.h>
可能会报错,这是编译器一般的处理机制,为了更高效的搜寻标准库和第三方库中的头文件,在本项目中glview.h
是项目文件,用尖括号包含的话会以标准库和第三方库的方式是寻找,可能找不到,如果想避免这个错误,可以在cmakelists
中添加如下代码指定头文件搜索路径:
target_include_directories(GLViewer PRIVATE .)