成功将基于Qt的Windows应用程序移植到OSX后,我注意到了一个问题。窗口小部件的行为相当奇怪,没有抛出任何错误,而且Windows上使用的代码完全相同。
小部件,例如QTreeView和QListView,在点击时会在它们周围显示蓝色边框。处于此状态时,特定窗口小部件对点击无响应。这是在点击另一个小部件之前,变为“活动”并带有蓝色边框。当点击第一个小部件(非活动小部件)时,它会做出反应,但随后会出现蓝色边框,并且不会对任何输入做出反应。
其他奇怪的行为,就是当这些小部件从主应用程序窗口弹出时,它们会停止渲染,就像你得到一个空白的浮动窗口一样。当停靠在主窗口时,它们恢复正常。
由于我无法在Windows上使用相同的代码重现此行为,因此它必须是OSX上的Qt或OSX本身。
我不知道造成这种情况的原因。
顺便说一句,我使用的是Qt 5.0.2
我感谢任何帮助。
更多信息:我没有注意到这一点,但我得到了输出QBackingStore::flush() called with non-exposed window, behavior is undefined.
我不确定这是否是我的小部件在移除时从包含停靠小部件消失的结果消失,或者是问题的根源
答案 0 :(得分:1)
所以你们都知道这是通过升级到Qt 5.1.0 beta来解决的。
我无法解释为什么它在使用新版本而不是旧版本时才有效。我自己的代码在两者之间是相同的。