2012-07-30 26 views
11

Pythonでpyqtを使用してデータをテーブルに追加したいとします。私はsetItem()関数を使用してQTableWidgetにデータを追加し、行番号と列番号とQTableWidgetItemを与えるべきであることがわかりました。私はそれをしましたが、テーブルを表示したいときは完全に空です。 たぶん私は愚かな間違いをしましたが、助けてください。ここ は私のコードです:あなたが探しているものをPythonでPyQt4を使用してQTableWidgetにデータを追加する

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_()) 

答えて

19

setRowCount()setColumnCount()メソッドです。 QTableWidgetでこれらを呼び出して、行数/列数を指定します。例えば。

... 
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())) 
... 

このコードは5x5テーブルを作成し、2番目の行(インデックス1)と最初の列(インデックス0)に "Sample"を表示します。

QTableWidgetこれらの2つのメソッドを呼び出さないと、テーブルの大きさがわからないため、項目を位置(1、0)に設定することは意味がありません。

あなたがそれを知らない場合は、Qt Documentationが詳細であり、多くの例が含まれています(これは簡単にPythonに変換できます)。 「詳細な説明」セクションは特に役立ちます。 QTableWidgetについて詳しくは、http://qt-project.org/doc/qt-4.8/qtablewidget.html#details

をご覧ください。
関連する問題