web-dev-qa-db-ja.com

Python)でPyQt4を使用してQTableWidgetにデータを追加する

Pythonでpyqtを使用してデータをテーブルに追加したいと思います。 setItem()関数を使用してデータをQTableWidgetに追加し、それに行と列の番号とQTableWidgetItemを指定する必要があることがわかりました。やりましたが、テーブルを表示したいときは完全に空です。ばかげた間違いをしたかもしれませんが、助けてください。これが私のコードです:

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

探しているのは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)と1列目(インデックス0)に「サンプル」を表示します。

これらの2つのメソッドを呼び出さないと、QTableWidgetはテーブルの大きさを認識できないため、アイテムを位置(1、0)に設定しても意味がありません。

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

20
D K