从 QPushButton 项目小部件复制 QTreeWidgetItem
Copy QTreeWidgetItem from QPushButton item widget
我想复制一个 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 中。
没有直接的方法从其项目小部件中获取 QTreeWidgetItem
,因此您必须明确地将索引存储在某处以便以后可以访问它。
一种方法是将索引作为 属性:
添加到项目小部件
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))
我想复制一个 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 中。
没有直接的方法从其项目小部件中获取 QTreeWidgetItem
,因此您必须明确地将索引存储在某处以便以后可以访问它。
一种方法是将索引作为 属性:
添加到项目小部件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))