我偶然发现了这个(显然是从更大的应用程序中摘录的:)]
import sys from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * if __name__ == '__main__': app = QApplication(sys.argv) d = {} widget = QWidget() d[widget] = 'hashable' item = QListWidgetItem('abc') d[item] = 'unhashable'
如果运行此命令,则在最后一行上得到:
TypeError: unhashable type: 'PySide2.QtWidgets.QListWidgetItem'
据我所知,任何Qt对象都可以用作dict键,就像任何用户定义的类实例一样。
[我在Windows 7上运行PySide2 5.13.0,Python 3.6.4。在Ubuntu 18.04,Python 3.6.9,PySide 5.9.0a1上遇到相同的错误。
感谢任何提示。
[我偶然发现(显然是从更大的应用程序中提取的):从PySide2.QtCore导入*从PySide2.QtGui导入*从PySide2.QtWidgets导入*如果__name__ =='...
[QListWidgetItem(类似于QTableWidgetItem和QTreeWidgetItem)不可散列表,因为与行关联的QListWidgetItem可以在不通知的情况下进行更改,这与QObjects(例如QWidget,QPushButton等)不同,>
如果您的目标是将信息与QListWidgetItem相关联,则可以使用setData()
和data()
方法。