Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 定义仅包含函数的QML结构_Qt_Qml - Fatal编程技术网

Qt 定义仅包含函数的QML结构

Qt 定义仅包含函数的QML结构,qt,qml,Qt,Qml,我是QT新手,在互联网上很难找到资源,所以我想在这里试试运气。我正在尝试创建一个仅包含函数(插槽?)的QML文件,并将该文件导入到我的主应用程序中。这些功能特别与处理电话有关(例如,placeCall,endCall,callDisconnected等)。我的第一个想法是使用创建一个“CallManager.qml”文件,并使用组件类型,如下所示: import QtQuick 2.12 import QtQml 2.3 Component { function makeCall(nu

我是QT新手,在互联网上很难找到资源,所以我想在这里试试运气。我正在尝试创建一个仅包含函数(插槽?)的QML文件,并将该文件导入到我的主应用程序中。这些功能特别与处理电话有关(例如,
placeCall
endCall
callDisconnected
等)。我的第一个想法是使用创建一个“CallManager.qml”文件,并使用
组件
类型,如下所示:

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文件调用它们

如果您想对不需要QML文件的函数进行分组,请使用JS。查看更多信息。这是正确的方法。嘿,谢谢!我不知道可以使用.js文件。这似乎是一个完美的解决方案!