定义一个只包含函数的 QML 结构

Defining a QML structure that only holds functions

我是 QT 的新手,我很难在 Internet 上找到资源,所以我想在这里试试运气。我正在尝试创建一个仅包含函数(插槽?)的 QML 文件,并将该文件导入到我的主应用程序中。这些函数将专门与处理 phone 调用相关(例如 placeCallendCallcallDisconnected 等)。我的第一个想法是创建一个“CallManager.qml”文件并使用 Component 类型,如下所示:

import QtQuick 2.12
import QtQml 2.3

Component {
    function makeCall(number) { ... }
    function endCall() { ... }
    // etc.
}

然后,我会在 main.qml 中执行以下操作:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.3

Window {
    Button {
        x: 0; y: 0
        text: "Call"
        onClicked: callManager.placeCall("1234567890")
    }
    CallManager {
        id: callManager
    }
}

我只想知道这是否是解决问题的有效方法,或者是否有更好的做法可以达到相同的结果。

您可以在您的资源中创建一个 javascript 文件“.JS”,然后像导入任何 QML 文件一样导入它,在这个 JS 文件中只需添加您的函数并从任何其他 QML 文件调用它们