我正在使用內置的派賽德模塊在自由民俗局中構建一個圖形用戶界面。有沒有一種簡單/標準的方法將數據“附加”到 PySide QtGui.QListWidget 中的列表項?到目前為止,我有這個(注意這不是完整的代碼,但希望能理解這一點):Class fcGui(QtGui.QWidget): def initUI(self): self.listWidget = QtGui.QListWidget(self) self.objData = [] self.listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) for i in range(0,len(App.ActiveDocument.Objects)): self.listWidget.addItem(App.ActiveDocument.Objects[i].Name) def acceptance(self): print(self.listWidget.selectedItems())這將按名稱打印所選項目。但現在我需要對與這些名稱關聯的對象執行一些操作。有沒有一種直接的方法來做到這一點?我能想到的只是一個復雜的方案來確定每個選定項目的索引,并將其與相應對象的列表相關聯。任何幫助將不勝感激。
1 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
您可以使用自定義角色來存儲對象:
ObjectRole = QtCore.Qt.UserRole + 1000
Class fcGui(QtGui.QWidget):
def initUI(self):
self.listWidget = QtGui.QListWidget(self)
self.objData = []
self.listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
for obj in App.ActiveDocument.Objects:
it = QtGui.QListWidgetItem(obj.Name)
it.setData(ObjectRole, obj)
self.listWidget.addItem(it)
def acceptance(self):
for it in self.listWidget.selectedItems():
obj = it.data(ObjectRole)
print(obj, obj.Name)
添加回答
舉報
0/150
提交
取消