PyQt:QAxBase.dynamicCall重载了list作为参数

时间:2012-11-18 21:41:18

标签: pyqt activex

像这样调用QAxBase.dynamicCall:

my_comp.dynamicCall("MyMethod(const QString&, int, bool)", "test", 2, False)

但是,使用重载调用(http://qt-project.org/doc/qt-4.8/qaxbase.html#dynamicCall-2)不会:

my_comp.dynamicCall("MyMethod(const QString&, int, bool)", ["test", 2, False])

它给出错误:...非可选参数缺失

重载调用期望Qt中有QList<QVariant>。我提供的列表是否由SIP自动映射到QList<QVariant>?我可以手动创建吗?

因为我有18个args,所以我需要使用重载调用。

编辑:我也明确地将args转换为像这样的QVariant,但同样的问题。

args = ["test", 2, False]
q_var_args = [QVariant(arg) for arg in args]
my_comp.dynamicCall("MyMethod(const QString&, int, bool)", ["test", 2, False])

干杯,

Jan

1 个答案:

答案 0 :(得分:0)

您可以使用固定参数,然后是解压缩的参数列表:

 params = ["test", 2, False]
 my_comp.dynamicCall("MyMethod(QString, int, bool)", *params)