在PySide2中使用invokeMethod时QGenericArgument / Q_ARG的用法

时间:2018-11-14 08:55:52

标签: python pyside2

我正在尝试将代码从PyQt5移植到PySide2。在某些时候,我正在使用:

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

尽管如此,Q_ARG不在PySide2中的QGenericArgument中。实际上,尽管在文档中将其描述为要使用的宏而不是QGenericArgument,但我根本无法找到它。

计划B:即使文档不鼓励这样做,我也尝试直接使用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)

所以看来我必须在这里使用指针,但不知道该怎么做。另外,我还没有找到用于PySide2的invokeMethod的任何示例。

有什么主意吗?

0 个答案:

没有答案