Python PyQt4 每分钟更新一次小部件数据

3 投票
1 回答
3964 浏览
提问于 2025-04-17 23:31

我有一个用 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)

撰写回答