基本示例
公共方法
假如我们的公共方法的路径在js/common_methods.js
1 2 3 4 5 6 7 8 9 10
| function objToKeyValueString(obj) { var keys = Object.keys(obj); var values = keys.map(function (key) { return obj[key]; }); return keys.map(function (key, index) { return key + "=" + values[index]; }).join("&"); }
function obj2Str(obj) { return JSON.stringify(obj); }
|
添加到qrc中
1 2 3 4 5
| <RCC> <qresource prefix="/"> <file>js/common_methods.js</file> </qresource> </RCC>
|
QML中使用
添加引用
1
| import "js/common_methods.js" as CommonMethods
|
调用
1 2 3 4 5 6 7
| Component.onCompleted: { let result = CommonMethods.objToKeyValueString({ "a": 1, "b": 2 }); console.log(result); }
|
延迟执行
这点和JS语法不一样
1 2 3 4 5 6 7 8 9 10
| function delayExecute(delayTime, parent, callback) { var timer = Qt.createQmlObject('import QtQuick 2.15; Timer { }', parent); timer.interval = delayTime; timer.repeat = false; timer.triggered.connect(function () { callback(); timer.destroy(); }); timer.start(); }
|
QML中使用
1 2 3 4 5 6 7 8 9
| import "js/common_methods.js" as CommonMethods
function onShowToast(msg) { console.log("onShowToast:" + msg); mPop.open(); CommonMethods.delayExecute(2000, this, () => { mPop.close(); }); }
|