python - TypeError:不可散列的类型:'ListWidgetItem'
问题描述
我有一些在 python2.7 环境中运行良好的 PySide2 代码......但是在 python3.7 中运行时,我收到此错误:
Traceback (most recent call last):
File "<Python Editor Contents>", line 17, in <module>
widget.resized.connect(item.resize_to_widget_size)
TypeError: unhashable type: 'ListWidgetItem'
这是代码的简化示例:
from PySide2 import QtWidgets, QtCore
class ListWidgetItem(QtWidgets.QListWidgetItem):
def __init__(self):
super(ListWidgetItem, self).__init__()
def resize_to_widget_size(self, width, height):
self.setSizeHint(QtCore.QSize(width, height))
class WidgetExample(QtWidgets.QWidget):
resized = QtCore.Signal(int, int)
def __init__(self):
super(WidgetExample, self).__init__()
item = ListWidgetItem()
widget = WidgetExample()
widget.resized.connect(item.resize_to_widget_size)
我知道 QListWidgetItem 不可散列......但我不太明白为什么在 python3 中有散列尝试。
有人可以向我解释一下,并可能提供解决方案。