2016-10-03 46 views
0

是否可以在QTreeWidget中添加一個QTextEdit作爲子項?QTextEdit作爲QTreeWidgetItem的子節點嗎?

這裏是我的代碼,我們可以創建一個QTreeWidget並添加列:

self.treetext = QtGui.QTreeWidget(self.dockWidgetContents_2) 
     self.treetext.setObjectName(_fromUtf8("treetext")) 
     self.verticalLayout_2.addWidget(self.treetext) 
     self.treetext.setGeometry(QtCore.QRect(20, 10, 261, 241)) 
     item_0 = QtGui.QTreeWidgetItem(self.treetext) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_0 = QtGui.QTreeWidgetItem(self.treetext) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 
     item_1 = QtGui.QTreeWidgetItem(item_0) 

,並添加新的項目,如孩子:

self.treetext.headerItem().setText(0, _translate("Form", "Model List", None)) 
     __sortingEnabled = self.treetext.isSortingEnabled() 
     self.treetext.setSortingEnabled(False) 
     self.treetext.topLevelItem(0).setText(0, _translate("Form", "Model 1", None)) 
     self.treetext.topLevelItem(0).child(0).setText(0, _translate("Form", "New Subitem", None)) 
     self.treetext.topLevelItem(0).child(1).setText(0, _translate("Form", "New Item", None)) 
     self.treetext.topLevelItem(0).child(2).setText(0, _translate("Form", "New Item", None)) 
     self.treetext.topLevelItem(0).child(3).setText(0, _translate("Form", "New Item", None)) 
     self.treetext.topLevelItem(1).setText(0, _translate("Form", "Model 2", None)) 
     self.treetext.topLevelItem(1).child(0).setText(0, _translate("Form", "New Subitem", None)) 
     self.treetext.topLevelItem(1).child(1).setText(0, _translate("Form", "New Item", None)) 
     self.treetext.topLevelItem(1).child(2).setText(0, _translate("Form", "New Item", None)) 
     self.treetext.topLevelItem(1).child(3).setText(0, _translate("Form", "New Item", None)) 
     self.treetext.setSortingEnabled(__sortingEnabled) 

可以創建其他如新的QTextEdit:

self.groupBox = QtGui.QTextEdit(self.dockWidgetContents_2) 
self.groupBox.setObjectName(_fromUtf8("groupBox")) 
self.verticalLayout_2.addWidget(self.groupBox) 

但是我們可以把QTextEdit作爲QTreeWidgetItem的新子嗎?

+0

是的,這應該有可能覆蓋有QItemDelegate這種行爲)。你有沒有嘗試過?哪裏有問題? – ImportanceOfBeingErnest

+0

我提出的解決方案是否適合您?或者你使用了不同的東西? –

回答

1

您可以在樹中使用setItemWidget

self.treetext.setItemWidget(item_1, 0, QTextEdit(self)) 

如果你的樹控件項目是可編輯的,你也可以告訴Qt來打開一個持久的編輯器(默認情況下,QTreeWidgetItems使用集件上的任何項目QLineEdit進行編輯,但你可以,如果你想使用openPersistentEditor()

self.treetext.openPersistentEditor(item_1, 0) 
相關問題