定义一个只包含函数的 QML 结构
Defining a QML structure that only holds functions
我是 QT 的新手,我很难在 Internet 上找到资源,所以我想在这里试试运气。我正在尝试创建一个仅包含函数(插槽?)的 QML 文件,并将该文件导入到我的主应用程序中。这些函数将专门与处理 phone 调用相关(例如 placeCall
、endCall
、callDisconnected
等)。我的第一个想法是创建一个“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 文件调用它们
我是 QT 的新手,我很难在 Internet 上找到资源,所以我想在这里试试运气。我正在尝试创建一个仅包含函数(插槽?)的 QML 文件,并将该文件导入到我的主应用程序中。这些函数将专门与处理 phone 调用相关(例如 placeCall
、endCall
、callDisconnected
等)。我的第一个想法是创建一个“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 文件调用它们