2012-07-30 7 views
11

Ich möchte meine Daten mit pyqt in Python zu einer Tabelle hinzufügen. Ich fand, dass ich setItem() Funktion verwenden sollte, um Daten zu einem QTableWidget hinzuzufügen und ihm die Reihe und die Spaltenzahl und QTableWidgetItem zu geben. Ich habe es getan, aber wenn ich den Tisch anzeigen möchte, ist es komplett leer. Vielleicht habe ich einen dummen Fehler gemacht, aber bitte hilf mir. Hier ist mein Code:Hinzufügen von Daten zu QTableWidget mit PyQt4 in Python

from PyQt4 import QtGui 

class Table(QtGui.QDialog): 
    def __init__(self, parent=None): 
     super(Table, self).__init__(parent) 
     layout = QtGui.QGridLayout() 
     self.led = QtGui.QLineEdit("Sample") 
     self.table = QtGui.QTableWidget() 
     layout.addWidget(self.led, 0, 0) 
     layout.addWidget(self.table, 1, 0) 
     self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.led.text())) 
     self.setLayout(layout) 

if __name__ == '__main__': 
    import sys 
    app = QtGui.QApplication(sys.argv) 
    t = Table() 
    t.show() 
    sys.exit(app.exec_()) 

Antwort

19

Was Sie suchen, die setRowCount() und setColumnCount() Methoden sind. Rufen Sie diese unter der Nummer QTableWidget auf, um die Anzahl der Zeilen/Spalten anzugeben. Z.B.

... 
self.table = QtGui.QTableWidget() 
self.table.setRowCount(5) 
self.table.setColumnCount(5) 
layout.addWidget(self.led, 0, 0) 
layout.addWidget(self.table, 1, 0) 
self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.led.text())) 
... 

Dieser Code wird eine 5x5-Tabelle machen und in der zweiten Zeile (mit dem Index 1) und die erste Spalte (mit Index 0) "Sample" anzuzeigen.

Ohne diese beiden Methoden zu rufen, würde QTableWidget nicht wissen, wie groß die Tabelle ist, also wäre es nicht sinnvoll, das Element auf Position (1, 0) zu setzen.

Falls Sie sich dessen nicht bewusst sind, ist die Qt Documentation detailliert und enthält viele Beispiele (die einfach in Python konvertiert werden können). Die Abschnitte "Detaillierte Beschreibung" sind besonders hilfreich. Wenn Sie weitere Informationen über QTableWidget möchten, gehen Sie hier: http://qt-project.org/doc/qt-4.8/qtablewidget.html#details