为什么我不能在分辨率为 800x600 的显示器上 运行 Qt Qml 应用程序?

Why I cannot run a Qt Qml application on monitor with resolution 800x600?

当我将分辨率设置为 800x600 时,我的应用程序崩溃并出现以下错误:

QXcbConnection: XCB error: 2 (BadValue), sequence: 460, resource id: 0, major code: 1 (CreateWindow), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 461, resource id: 37748745, major code: 2 (ChangeWindowAttributes), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 462, resource id: 37748745, major code: 18 (ChangeProperty), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 463, resource id: 37748745, major code: 18 (ChangeProperty), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 464, resource id: 37748745, major code: 18 (ChangeProperty), minor code: 0
etc.

但是当我 运行 在分辨率为 1920x1080(或任何其他大于或等于 1024x768)分辨率的显示器上运行 Qml 应用程序时,该应用程序运行良好。

这似乎是 Qt 错误或 xcb 库错误。

UPD:我在 bugreports.qt.io 中创建了 a bug report

此效果仅为 Qt Quick Controls 2 应用程序重现

如果删除下一行代码(在 main.cpp 中),此效果不会重现:

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);