-1

我遇到了一个问题:我正在编写一个小部件,它显示当前日期的天数。它就像一个按钮,但它不是从QPushButton类派生的。刚从QWidget。所以我重新实现了enterEvent(), leaveEvent(), mousePressEvent(), mouseReleaseEvent(). 我update()在这些方法中调用,并且小部件具有逼真的按钮行为(paintEvent()也被重新实现)。但是当我更改系统日期并将该小部件悬停在其他窗口时,我的小部件不会调用paintEvent()并显示旧日期。只有当我将鼠标放在它上面时,小部件才会重新绘制它的内容。我想有一个选项可以在悬停事件上绘制旧内容以避免不必要的绘制事件。但我需要禁用它。试图设置许多属性(Qt::WidgetAttribute枚举)。但这没有帮助。

请帮帮我(对不起我的英语不好)。

4

1 回答 1

0

我认为您应该找到一种方法来检测系统时间已更改并update()在发生这种情况时调用。任何其他方法(例如检测窗口的“悬停”或等待鼠标事件)都会导致更新发生得太晚。

于 2011-01-16T07:45:51.107 回答