0
我有以下代碼,我使用python和Qt創建一個ui,我可以在其中查看錶中的數據。工作正常,但我試圖在最後一列插入一個按鈕,這只是我爲按鈕創建的一個「佔位符」列。 (我不使用該列中的數據)Python QTreewidget按鈕插入每隔一行跳過
但我的問題是,我得到的按鈕插入,但只有每隔一行。即使當表中的行停止時,它也會繼續插入每一行。
col = self.dbu.GetColumn_names()
table = self.dbu.GetTable()
for c in range (len(col)):
self.treeWidget.headerItem().setText(c, col[c])
self.treeWidget.clear()
cw = QTreeWidget()
cw.setColumnCount(len(col))
for item in range(len(table)):
QTreeWidgetItem(self.treeWidget)
for value in range(len(table[item])):
if value != 4:
self.treeWidget.topLevelItem(item).setText(value, str(table[item][value]))
else:
i = QTreeWidgetItem(self.treeWidget)
b = QPushButton("push me " + str(value), cw)
self.treeWidget.setItemWidget(i, [4][0], b)
我複製和來自世界各地的粘貼代碼,並試圖百個東西,我得到了最好的是獲得在每一行按鍵,除了第一行。
大多數討論這個問題的文獻都是用C#/ C++編寫的,我不知道如何將代碼轉換爲python並嘗試它。
如果可能的話,請告訴我我要出錯的地方,或者我必須使用不同的課程。
問候
謝謝約瑟夫,其實我也剛回來,現在來,我發現我的錯誤,這是你提到的正是權。另外,寫「4」的奇怪方式僅僅是一些遺留在我測試一百種不同事物的工件上。在發佈它之前,你應該看到我的代碼,分配打印語句和灰色描述行。 :)再次感謝您的幫助和代碼! –
你也許能夠告訴我如何能夠將該按鈕連接到一個動作。我會使用的是下面的代碼「button.clicked.connect(self.select_file)」,但我不確定我是否可以把它放在代碼的下方,或者如果我不得不把它放在我聲明的頂部我所有的變數。我試圖用self.button聲明頂部的按鈕,但是當我運行代碼時,它每次都會使python崩潰。 –
要做按鈕的事情,我會去''button.clicked.connect(lambda rowItem = rowItem:self.button_clicked(rowItem))',並實現該button_clicked函數來做你想做的事情,因爲rowItem 。記住有很多按鈕,你需要把它們分開。 –