Python PyQt5-QtreeWidget:如何访问自定义小部件';QtreeWidgetItem中的s方法?
我有一个简单的QTreeWidget:Python PyQt5-QtreeWidget:如何访问自定义小部件';QtreeWidgetItem中的s方法?,python,pyqt5,qtreewidgetitem,Python,Pyqt5,Qtreewidgetitem,我有一个简单的QTreeWidget: self.treeWidget = QTreeWidget(self) col = ("Status", "Name") self.treeWidget.setColumnCount(2) self.treeWidget.setHeaderLabels(col) 我使用以下方法填充: wid = Custom_Widget() item = QTreeWidgetItem(self.treeWidget) item.setText(1, "some st
self.treeWidget = QTreeWidget(self)
col = ("Status", "Name")
self.treeWidget.setColumnCount(2)
self.treeWidget.setHeaderLabels(col)
我使用以下方法填充:
wid = Custom_Widget()
item = QTreeWidgetItem(self.treeWidget)
item.setText(1, "some string")
item.treeWidget().setItemWidget(item, 0, wid)
我可以通过以下方式轻松访问文本列:
root = self.treeWidget.invisibleRootItem()
it = root.child(2) # for example the third item
it.setText(1, "Edited")
我需要的是编辑列0中的costum_小部件,那么我如何访问它或调用他的方法呢?我通过保留我创建的所有costum_小部件的列表来解决这个问题,我的代码是:
from CustomWidgets import Custom_Widget
from PyQt5.QtWidgets import *
import sys
class MyExample(QWidget):
def __init__(self):
super().__init__()
self.treeWidget = QTreeWidget(self)
self.group_wid = [] # my list of widgets
col = ("Status", "Name")
self.treeWidget.setColumnCount(2)
self.treeWidget.setHeaderLabels(col)
self.populate_tree()
self.edit_tree()
self.show()
def populate_tree(self):
for i in range(10):
wid = Custom_Widget()
self.group_wid.append(wid) # each time i instantiate a Custom_Widget i'll add it to my list of widgets
item = QTreeWidgetItem(self.treeWidget)
item.setText(1, "some string")
item.treeWidget().setItemWidget(item, 0, wid)
def edit_tree(self):
root = self.treeWidget.invisibleRootItem()
it = root.child(2) # for example the third item
it.setText(1, "Edited")
self.group_wid[2].my_method() # i can easily edit my widgets that are in the QTreeWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyExample()
app.exec_()
猜测QtreeWidgetItem仅包含对所包含小部件的引用