在 QML 中 使用 Underscore.js

Underscore.js

underscore.js 無疑是個很棒的 library,但因為他會直接attach一個 _ 在 global 裡頭,因此在 QML 中是無法直接使用的。

我們在 QML 中要使用,目前的做法是把 加到 Qt 這個 global object 裡頭,變成 Qt. 來使用。 這樣就可以寫:

Item
{
    enabled: Qt._.every([inptBoxIP, inptBoxUser, inptBoxPassword],
    function f(e) {
    return e.text !== ""
    })
}

Library

https://github.com/diro/qml_underscorejs

Example

在實務開發上,常常會需要 connect signal,一般是使用 Connections 元件來做,但他做不到多個 Signals 連結到同一個 Slog,這邊我們利用 Underscore.js 來打造一個。

Util.js

Qt.include("underscore.js")

function connectSignals(signals, slot)
{
    Qt._.each(signals, function f(s){s.connect(slot)});
}

example.qml

Component.onCompleted: {
        Util.connectSignals([onWidthChanged, onHeightChanged], hideTips)
        Util.connectSignals([btnLogin.onClicked, Keys.onEnterPressed, Keys.onReturnPressed],login)
        Util.connectSignals([chkLocal.onClicked], setIPAddrToLocalhost)

}

results matching ""

    No results matching ""