Я наткнулся на это (это, очевидно, выдержка из более крупного приложения):
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, как и любые пользовательские экземпляры классов.
Я использую PySide2 5.13.0, Python 3.6.4 на Windows 7. Я получаю ту же ошибку в Ubuntu 18.04, Python 3.6.9, PySide 5.9.0a1.
Спасибо за любую подсказку.