我需要一个QWidget
不做任何事情的“哑巴”,只提供一个HWND
并且可以作为孩子添加到其他QWidget
s 中。具体来说,它不应该尝试管理鼠标光标(这是我简单实例化 a 的问题QWidget
)。(动机:我有一个就地激活的 ActiveX 控件,它有时会尝试更改鼠标光标,但 QWidget 将其更改回默认值,所以它在闪烁)
问问题
142 次
1 回答
1
更改光标的代码不在 QWidget 中,因此没有 QWidget 更改可以解决问题。是 QApplication 从内部QApplication::dispatchEnterLeave(...)
. 最终,它qt_win_set_cursor
完成了这项工作。
我不明白如何在不改变 Qt 源的情况下改变这种行为。
我建议将报告作为 Qt 错误。Qt 应该检查在离开外星小部件时是否更改了本机光标,如果是这样,则需要保留它。如果您提供补丁来实际修复问题,您将有更好的机会快速修复错误。
解决方法:为防止闪烁,请使用QApplication::setCursorOverride()
. 这修复了闪烁,但不会修复无法更改光标的控件。
于 2012-06-25T13:01:00.887 回答