0

我需要一个QWidget不做任何事情的“哑巴”,只提供一个HWND并且可以作为孩子添加到其他QWidgets 中。具体来说,它不应该尝试管理鼠标光标(这是我简单实例化 a 的问题QWidget)。(动机:我有一个就地激活的 ActiveX 控件,它有时会尝试更改鼠标光标,但 QWidget 将其更改回默认值,所以它在闪烁)

4

1 回答 1

1

更改光标的代码不在 QWidget 中,因此没有 QWidget 更改可以解决问题。是 QApplication 从内部QApplication::dispatchEnterLeave(...). 最终,它qt_win_set_cursor完成了这项工作。

我不明白如何在不改变 Qt 源的情况下改变这种行为。

我建议将报告作为 Qt 错误。Qt 应该检查在离开外星小部件时是否更改了本机光标,如果是这样,则需要保留它。如果您提供补丁来实际修复问题,您将有更好的机会快速修复错误。

解决方法:为防止闪烁,请使用QApplication::setCursorOverride(). 这修复了闪烁,但不会修复无法更改光标的控件。

于 2012-06-25T13:01:00.887 回答