如果在其中按下按钮,我想复制QTreeWidgetItem。
到目前为止,我已经:
def Copy(self):
obj = self.sender()
self.Tree = qt.QTreeWidget(self)
self.Tree.setHeaderLabels(["Name"])
item = qt.QTreeWidgetItem("Name")
self.Tree.addTopLevelItem(item)
childItem = qt.QTreeWidgetItem("Name") #<------- This I'd like to copy
item.addChild(childItem)
bttn = qt.QPushButton("Copy This Widget", self)
bttn.clicked.connect(self.Copy)
self.Tree.setItemWidget(childItem, 1, bttn)
我希望能够复制childItem
,以便我可以将其放在QTreeWidget中。
答案 0 :(得分:1)
没有直接从其item-widget获取QTreeWidgetItem
的方法,因此您必须在某处明确地存储索引,以便以后可以访问它。
执行此操作的一种方法是将索引添加到item-widget作为属性:
bttn = qt.QPushButton("Copy This Widget", self)
index = QtCore.QPersistentModelIndex(self.Tree.indexFromItem(childItem))
bttn.setProperty('index', index)
...
def Copy(self):
index = self.sender().property('index')
if index.isValid():
copyItem = qt.QTreeWidgetItem(self.Tree.itemFromIndex(index))