QState.assignProperty не работает в PySidePython

Программы на Python
Anonymous
QState.assignProperty не работает в PySide

Сообщение Anonymous »

Я видел этот пример с использованием QState, который, похоже, работает с PyQt5. Однако при попытке использовать для этого PySide я получаю эту ошибку;
Traceback (most recent call last):
File ".../qstate-error.py", line 16, in
state1.assignProperty(widget, b'test', 1)
TypeError: 'PySide2.QtCore.QState.assignProperty' called with wrong argument types:
PySide2.QtCore.QState.assignProperty(QWidget, bytes, int)
Supported signatures:
PySide2.QtCore.QState.assignProperty(PySide2.QtCore.QObject, bytes, typing.Any)

К сожалению, для работы мне приходится использовать PySide, поэтому переход на PyQt5 невозможен. Я пробовал это с PySide2 и PySide6 — оба выдают эту ошибку. Но потом я увидел вопрос, в котором явно упоминается PySide - так что, по-видимому, это работает. Так требует ли QState какой-то специальной настройки, о которой я не знаю? Или у меня в сборке что-то сломано? Я работаю над Rocky 8, Python 3.9.16.
Для справки: следующий пример работает в pyqt5, но не работает в pyside2 (тот же результат в pyside6).
try:
from PySide2.QtWidgets import QApplication, QWidget
from PySide2.QtCore import QState
except ImportError:
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import QState

if __name__ == '__main__':

app = QApplication([])
widget = QWidget()
state1 = QState()
state1.assignProperty(widget, b'test', 1)
widget.show()

app.exec_()


Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-pyside

Вернуться в «Python»