如何让我的 QTableWidget 类(任何类)自行更新/刷新?
Posted
技术标签:
【中文标题】如何让我的 QTableWidget 类(任何类)自行更新/刷新?【英文标题】:How do I make my QTableWidget class (any class) update/refresh itself? 【发布时间】:2014-02-25 18:12:55 【问题描述】:我正在使用 pyqt4 制作一个 gui。当我将来自 sqlite 的数据插入到我的 qtablewidget 表中时,它只会在我关闭程序并重新打开它后自行更新。在插入/删除或更改数据后,如何让程序自动更新(刷新类)?
【问题讨论】:
【参考方案1】:由于我不确定您是如何实现代码的,也许下面的代码可以帮助您。
#!/usr/bin/python
import sys
from PyQt4.QtGui import QWidget, QPushButton, QMainWindow, QTableWidget,QTableWidgetItem, QVBoxLayout, QApplication
from PyQt4.QtCore import Qt
class MyMainWindow(QMainWindow):
def __init__(self, parent=None):
"""
"""
super(MyMainWindow,self).__init__(parent)
self.setWidgets()
def setWidgets(self, ):
vBox = QVBoxLayout()
mainFrame = QWidget()
self._pressButton = QPushButton("Update Table",self)
self._pressButton.clicked.connect(self.updateTable)
self._table = QTableWidget(self)
self._table.setRowCount(3)
self._table.setColumnCount(3)
vBox.addWidget(self._pressButton)
vBox.addWidget(self._table)
mainFrame.setLayout(vBox)
self.setCentralWidget(mainFrame)
def updateTable(self, ):
i = self._table.currentRow()
if i == -1:
i=0
self._table.insertRow(i)
self._table.setItem(i,0,QTableWidgetItem("Test"))
if __name__ == '__main__':
qApp = QApplication(sys.argv)
MainWindow = MyMainWindow()
MainWindow.show()
sys.exit(qApp.exec_())
干杯
【讨论】:
感谢您的反馈,但是我只想重新启动该类,例如将自身外部(在另一个类中)的“MyMainWindow”连接到一个按钮等以再次运行它,以便表格自行刷新我所做的更改。以上是关于如何让我的 QTableWidget 类(任何类)自行更新/刷新?的主要内容,如果未能解决你的问题,请参考以下文章
QTableWidget 作为 QTreeView 中的子级