【问题标题】:How do I make my QTableWidget class (any class) update/refresh itself?如何让我的 QTableWidget 类(任何类)自行更新/刷新?
【发布时间】:2014-02-25 18:12:55
【问题描述】:

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

【问题讨论】:

    标签: python sqlite class pyqt4 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”连接到一个按钮等以再次运行它,以便表格自行刷新我所做的更改。
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2015-03-17
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多