2012-07-30 28 views
11

Verilerimi python'da pyqt kullanarak bir tabloya eklemek istiyorum. QTableWidget'a veri eklemek ve QTableWidgetItem numaralı satırı ve sütun numarasını vermek için setItem() işlevini kullanmam gerektiğini buldum. Yaptım ama masayı görüntülemek istediğimde tamamen boş. Belki aptalca bir hata yaptım ama lütfen bana yardım edin.Python'da PyQt4'ü kullanarak QTableWidget'e veri ekleme

Aradığınız Ne
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_()) 

cevap

19

setRowCount() ve setColumnCount() yöntem vardır: İşte benim kodudur. Satır/sütun sayısını belirtmek için bunları QTableWidget numaralı telefondan arayın. Örneğin.

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

Bu kod, bir 5x5 masasına ve (indeksi 1) ile ikinci satırında "örnek" ve (indeksi 0) ile birinci sütun gösterecektir.

Bu iki yöntemi çağırmadan, QTableWidget tablonun ne kadar büyük olduğunu bilmez, böylece öğeyi konum (1, 0) konumuna ayarlamak mantıklı olmaz.

Eğer bunun farkında değilseniz, Qt Documentation ayrıntılı ve birçok örneği (kolayca Python'a dönüştürülebilir) içerir. "Ayrıntılı Açıklama" bölümleri özellikle faydalıdır. QTableWidget hakkında daha fazla bilgi isterseniz, buraya gidin: http://qt-project.org/doc/qt-4.8/qtablewidget.html#details