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

3
当我将分辨率设置为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 version 3.0 Using Qt version 5.7.0
  • libxcb库版本:libxcb 1.12-1
看起来像是一个Qt bug或者xcb库的bug。
更新:我已经在bugreports.qt.io上创建了一个bug报告这种现象只会出现在Qt Quick Controls 2应用程序中。
1个回答

1
如果删除main.cpp中的下一行代码,则无法再现此效果:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

@kuanyui,Qt 中的 bug,您可以在 bug report 上查看详细信息。 - kulinich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接