我遇到了一个问题:
我正在编写一个小部件,它显示当前日期的日期编号。它就像一个按钮,但它不是来自QPushButton
类。仅来自QWidget
。所以我重新实现了enterEvent()
,leaveEvent()
,mousePressEvent()
,mouseReleaseEvent()
。我在这些方法中调用update()
,小部件具有逼真的按钮行为(paintEvent()
也重新实现)。但是当我更改系统日期并将该窗口小部件悬停在其他窗口时,我的窗口小部件不会调用paintEvent()
并显示旧日期。只有当我将鼠标放在它上面时,小部件才会重新绘制它的内容。我猜有一个选项,它在悬停事件上绘制旧内容,以避免不必要的绘制事件。但我需要禁用它。试图设置许多属性(Qt::WidgetAttribute
枚举)。但它没有帮助。
请帮助我(抱歉我的英语不好)。
答案 0 :(得分:0)
我认为您应该找到一种方法来检测系统时间是否已更改,并在发生这种情况时调用update()
。任何其他方法(如检测窗口的“悬停”或等待鼠标事件)都会导致更新发生得太晚。