1

像这样调用 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])

它给出了一个错误:... 缺少非可选参数

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

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

编辑:我也将 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])

干杯,

4

1 回答 1

0

您可以有一个固定参数,后跟一个解压缩的参数列表:

 params = ["test", 2, False]
 my_comp.dynamicCall("MyMethod(QString, int, bool)", *params)
于 2012-11-18T23:59:03.447 回答