在Windows 7上,具体而言,虽然我认为这并不重要。
我们在无数个桌面应用程序中都看到过这个问题,特别是那些不使用操作系统提供的控件的游戏:当屏幕在静止的鼠标光标下编程更改时(与用户移动光标到新的小部件相反),它们会失去同步。光标要么不改变,要么小部件不按照应该将光标放进去的方式绘制 - 显然,小部件的“鼠标进入”事件没有被触发。如果你轻轻摇动鼠标而甚至没有离开小部件,事情就会自己解决。
不幸的是,Qt 5.7也有这个普遍存在的问题。首先想到的解决方案是通过Windows手段将鼠标程序化地移动到(0,0),然后再返回。然而,这不是跨平台的。还有更好的想法吗?
我们在无数个桌面应用程序中都看到过这个问题,特别是那些不使用操作系统提供的控件的游戏:当屏幕在静止的鼠标光标下编程更改时(与用户移动光标到新的小部件相反),它们会失去同步。光标要么不改变,要么小部件不按照应该将光标放进去的方式绘制 - 显然,小部件的“鼠标进入”事件没有被触发。如果你轻轻摇动鼠标而甚至没有离开小部件,事情就会自己解决。
不幸的是,Qt 5.7也有这个普遍存在的问题。首先想到的解决方案是通过Windows手段将鼠标程序化地移动到(0,0),然后再返回。然而,这不是跨平台的。还有更好的想法吗?
QSplitter
的分割器,其中包含一系列继承自QPanel
的面板。每个面板都有一个关闭按钮。当用户点击此按钮时,面板将关闭,并且分隔器会调整其他面板的大小,以便新面板占用其空间。但是,对于现在位于鼠标光标下的新面板,enterEvent()
没有被调用,因此面板被错误地绘制。摇动鼠标可以解决这个问题。 - sigilQWidget::update
是否解决了你的问题? - m7913d