Использование QGenericArgument / Q_ARG при использовании invokeMethod в PySide2

Я пытаюсь портировать код с PyQt5 на PySide2. В определенный момент я использую:

QMetaObject.invokeMethod(dialog, "my_function", Qt.QueuedConnection, QGenericArgument.Q_ARG(str, filepath))

Тем не менее, Q_ARG не входит в QGenericArgument в PySide2. На самом деле, я не смог найти его вообще, несмотря на то, что он описан в документации как макрос, который будет использоваться вместо QGenericArgument.

План Б: Я пытался использовать QGenericArgument напрямую, даже когда документация не рекомендует это делать. Поэтому я попробовал это:

QMetaObject.invokeMethod(dialog, "my_function", Qt.QueuedConnection, QGenericArgument(str, filepath))

QMetaObject.invokeMethod(dialog, "my_function", Qt.QueuedConnection, QGenericArgument('str', filepath))

QMetaObject.invokeMethod(dialog, "my_function", Qt.QueuedConnection, QGenericArgument('QString', filepath))

Во всех случаях ошибка была одинаковой:

ERROR: 'PySide2.QtCore.QGenericArgument' called with wrong argument types:
PySide2.QtCore.QGenericArgument(str, str)
Supported signatures:
PySide2.QtCore.QGenericArgument(PySide2.QtCore.QGenericArgument)
PySide2.QtCore.QGenericArgument(bytes = nullptr, void = nullptr)

Так что, похоже, я должен использовать указатели здесь, но не знаю, как это сделать. Кроме того, я не нашел ни одного примера invokeMethod для PySide2.

Любая идея?

0 ответов

Другие вопросы по тегам