Python PyQt4每1分钟更新小部件上的数据

3
我有一个用PyQT4编写的应用程序,从本地sqlite3数据库读取信息,并使用QTableWidget显示数据。
sqlite3上存储的数据随时会发生变化。因此,我想每1分钟更新一次我的表格小部件。
为了简化问题,假设我已经有一个名为“Refresh()”的函数,该函数将刷新表格小部件中的内容。
如何使此函数“Refresh()”每1分钟执行一次? 我已经使用Tkinter中的time.after()实现过。 我不知道在PyQt中如何实现。
1个回答

5

你的函数可能应该被命名为paintEvent。然后像这样创建一个QTimer

self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.update)
self.timer.start(60000) #trigger every minute.

除非你需要在后端而不是前端更新某些内容(换句话说,该函数用于绘图),否则几乎毫无疑问应该将其命名为paintEvent。然后执行以下操作:

self.timer.timeout.connect(self.Refresh)

这会不会冻结我的GUI,或者每1分钟将paintEvent队列放入事件循环中? - Chris Aung
@ChrisAung 不会冻结,它将作为您的事件循环的一部分运行。附上相关文档链接。 - joojaa
根据self.update的功能,它不应该冻结GUI。 - Naib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接