【问题标题】:Python PyQt4 update data on widget every 1 minPython PyQt4 每 1 分钟更新一次小部件上的数据
【发布时间】:2014-04-30 15:51:11
【问题描述】:

我有一个PyQT4 应用程序,它从本地sqlite3 数据库读取信息并使用QTableWidget 显示数据。

sqlite3 上存储的数据会不时变化。所以,我想每 1 分钟更新一次 Table Widget。

为了简化问题,假设我已经有一个名为“Refresh()”的函数,它将刷新我的表格小部件中的内容。

如何让这个函数'Refresh()' 每 1 分钟执行一次?我在Tkinter 中使用time.after() 完成了此操作。我不知道如何在PyQt 中做到这一点。

【问题讨论】:

    标签: python python-2.7 pyqt4


    【解决方案1】:

    您的函数可能应该被称为 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 队列放入事件循环中?
    • @ChrisAung 不,它不会冻结,它将作为事件循环的一部分运行。喜欢相关文档。
    • 取决于 self.update 做什么,它不应该冻结 GUI。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多