QTextEdit作为QTreeWidgetItem的子节点?

时间:2016-10-03 19:27:59

标签: python pyqt pyqt4 qtextedit qtreewidget

是否可以在QTreeWidget中添加QTextEdit作为子项?

这是我的代码,我们可以创建一个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的新子项吗?

1 个答案:

答案 0 :(得分:1)

您可以使用setItemWidget

在树中的任何项目上设置窗口小部件
self.treetext.setItemWidget(item_1, 0, QTextEdit(self))

如果您的树窗口小部件项目是可编辑的,您也可以告诉Qt打开持久性编辑器(默认情况下,QTreeWidgetItems使用QLineEdit进行编辑,但您可以使用{覆盖该行为{1}}如果您愿意)使用openPersistentEditor()

QItemDelegate