2011-12-13 256 views
0

我有一些tablewidgets,其中我要插入一些data.To做到這一點,我使用以下命令:在pyqt中,如何使用for循環在tablewidgets中插入數據?

for index,i in enumerate(list1): 
    item = QtGui.QTableWidgetItem() 
    item.setText(QtGui.QApplication.translate("Dialog", str(i), None, QtGui.QApplication.UnicodeUTF8)) 
    item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignCenter) 
    self.tableWidget_1.setItem(0, index, item) 

此時此刻我做到這一點,每tablewidget.I想也許我可以寫一個簡單的功能,如下所示:

def function_1(list1,number_of_tablewidget): 
    for index,i in enumerate(list1): 
     item = QtGui.QTableWidgetItem() 
     item.setText(QtGui.QApplication.translate("Dialog", str(i), None, QtGui.QApplication.UnicodeUTF8)) 
     item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignCenter) 
     self.tableWidget_number_of_tablewidget.setItem(0, index, item) 

我的問題是關於number_of_tablewidget。該變量將是一個數字,那麼我將如何適應最後一行?謝謝。

回答

1

只發送QTableWidget對象的功能和使用這樣:

def function_1(item_list,tablewidget): 
    for index, i in enumerate(item_list): 
     #... 
     tablewidget.setItem(0, index, item) 
0

您可以使用GETATTR()來計算動態屬性名稱:

def function_1(list1,number_of_tablewidget): 
    for index,i in enumerate(list1): 
     item = QtGui.QTableWidgetItem() 
     item.setText(QtGui.QApplication.translate("Dialog", str(i), None, QtGui.QApplication.UnicodeUTF8)) 
     item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignCenter) 
     getattr(self, "tableWidget_%d" % number_of_tablewidget).setItem(0, index, item)