为什么我不能在分辨率为 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 应用程序时,该应用程序运行良好。
- 系统:Archlinux 4.7.4-1-ARCH x86_64 GNU/Linux
- Qt:QMake 版本 3.0 使用 Qt 版本 5.7.0
- libxcb: libxcb 1.12-1
这似乎是 Qt 错误或 xcb 库错误。
UPD:我在 bugreports.qt.io 中创建了 a bug report。
此效果仅为 Qt Quick Controls 2 应用程序重现
如果删除下一行代码(在 main.cpp 中),此效果不会重现:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
当我将分辨率设置为 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 应用程序时,该应用程序运行良好。
- 系统:Archlinux 4.7.4-1-ARCH x86_64 GNU/Linux
- Qt:QMake 版本 3.0 使用 Qt 版本 5.7.0
- libxcb: libxcb 1.12-1
这似乎是 Qt 错误或 xcb 库错误。
UPD:我在 bugreports.qt.io 中创建了 a bug report。
此效果仅为 Qt Quick Controls 2 应用程序重现
如果删除下一行代码(在 main.cpp 中),此效果不会重现:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);