2016-10-03 44 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) 
相关问题