众所周知,在 JavaScript 中,所有函数都可以接受任意数量的参数。在 Qt 中,您可以使用 Q_INVOKABLE 标记 QObject,其方法可从 QML 访问。例如:
class myObj: public QObject
{
Q_OBJECT
//...
public slots:
Q_INVOKABLE QJSValue myFunction(QJSValue value);
//...
};
Run Code Online (Sandbox Code Playgroud)
然后你可以从 JS 调用它:
(function(){
//like this:
var result = myObj.myFunction("test");
//but also like this:
var result2 = myObj.myFunction(1,2,3,4,5); //,6,7,8, ..., 9998, 9999
})();
Run Code Online (Sandbox Code Playgroud)
那么,如何在 C++ 端处理可变数量的参数?在 JS 方面,我们有“参数”对象。Q_INVOKABLE 方法是否有任何类似物?
xec*_*eco -1
您可以将QList<QVariant>
其作为 C++ 函数的参数Q_INVOKABLE
,并在 qml 端传递任何数组,例如["string", 1, 2, 3]
. QVariant
可转换为大多数基本数据类型。
归档时间: |
|
查看次数: |
1939 次 |
最近记录: |