簡體   English   中英

在PyQt5中,如何在QTreeWidget單元內添加QSpinBox?

[英]In PyQt5, How to add a QSpinBox inside a QTreeWidget cell?

我試圖在QTreeWidget tree_parameters的某些單元格內添加QSpinBox。

l1 = QTreeWidgetItem(["String A", "", ""])
l2 = QTreeWidgetItem(["String AA", "", ""])
for i in range(3):
    l1_child = QTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)])
    l1.addChild(l1_child)

for j in range(2):
    l2_child = QTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child CC" + str(j)])
    l2.addChild(l2_child)

self.tree_parameters.resize(500, 200)
self.tree_parameters.setColumnCount(3)
self.tree_parameters.setHeaderLabels(["Column 1", "Column 2", "Column 3"])
self.tree_parameters.addTopLevelItem(l1)
self.tree_parameters.addTopLevelItem(l2)


item = QTreeWidgetItem()
widget = QSpinBox()
widget.setValue(5)
self.tree_parameters.setItemWidget(item, 1, widget)

使用此代碼,它顯示為樹,但不顯示使用setItemWidget函數添加的QSpinBox小部件。

謝謝!

根據文檔

無效的QTreeWidget :: setItemWidget(QTreeWidgetItem * item,int column,QWidget * widget)

設置要在給定項目和列指定的單元格中顯示的給定窗口小部件。

[...]

您首先要做的是添加項目,然后將小部件添加到特定的列中,例如,在您的情況下,我們將項目添加到頂部,然后將其放置在第二列中:

item = QTreeWidgetItem()
self.tree_parameters.addTopLevelItem(item)
widget = QSpinBox()
widget.setValue(5)
self.tree_parameters.setItemWidget(item, 1, widget)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM