我试图用 QOpenGLWidget 类(Qt6)做一些测试,我写了以下 main.cpp:
#include <QApplication>
#include <QOpenGLWidget>
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
QOpenGLWidget win(nullptr);
win.show();
return app.exec();
}
但是,在 ubuntu/wayland 上执行时,出现以下错误:
The Wayland connection experienced a fatal error: Protocol error
如果我设置以下环境变量,则可以正常工作(显示黑色窗口):
QT_QPA_PLATFORM=xcb
我是否需要设置一些额外的设置才能让它在原生的 Wayland 上运行?还是我的系统配置有问题?
我正在用 cmake 构建:
cmake_minimum_required(VERSION 3.13)
project(FirstQtWindow)
find_package(OpenGL REQUIRED)
find_package(Qt6 COMPONENTS Gui OpenGLWidgets)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
add_executable(first-qt-window
main.cpp)
target_link_libraries(
first-qt-window
PUBLIC
OpenGL::GLU
Qt6::Core
Qt6::OpenGLWidgets)