如何使我的QTableWidget类(任何类)更新/刷新本身?

时间:2014-02-25 18:12:55

标签: python sqlite class pyqt4 qtablewidget

我正在使用pyqt4制作一个gui。当我将数据从sqlite插入到我的qtablewidget表中时,它只会在我关闭程序并重新打开它后自行更新。如何在插入/删除或更改数据后自动更新程序(刷新类)?

1 个答案:

答案 0 :(得分:0)

由于我不确定您是如何实现代码的,因此以下代码可能会对您有所帮助。

#!/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_())

干杯