попробуйте получить доступ к глобальной переменной qml, но она сообщает об ошибке - PullRequest
0 голосов
/ 25 января 2019

мой код

AppDelegate.js для глобальных переменных

.pragma library

var appDelegate= {}

MyApp.js

Qt.include("AppDelegate.js")



function AppDelegate(){

}


AppDelegate.prototype.doSomething=function() {


    console.log("vvvvvvvvvvvvv")

}
AppDelegate.prototype.doSomething1=function() {


    console.log("AAAAAAAAAAAAAA")

}
//-------------------------------------------------------
function initApp(){


    appDelegate=new AppDelegate()
    appDelegate.doSomething()
    appDelegate.doSomething1()

}

MyApp.qml

import QtQuick 2.2
import QtQuick.Controls 1.2
import "MyApp.js" as MyApp


ApplicationWindow {
    visible: true
    title: "System Dialogs Gallery"
    width: 580
    height: 480

    TabView {
        anchors.fill: parent
        anchors.margins: 8
        Tab {
            id: controlPage
            title: "File"
            FileDialogs { }
        }

    }

    Component.onCompleted: {
        MyApp.initApp()

    }
}

работает хорошо и выводится

qml: vvvvvvvvvvvvv
qml: AAAAAAAAAAAAAA

, но если я звоню из другого .js .qml файла

ColorDialogs.js

Qt.include("AppDelegate.js")



function doit(){



    appDelegate.doSomething1()

}

ColorDialogs.qml

import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.1

import "ColorDialogs.js" as ColorDialogs



Item {


    Component.onCompleted: {


        ColorDialogs.doit()

    }
}

сообщает об ошибке:

ColorDialogs.js: : TypeError: Property 'doSomething1' of object [object Object] is not a function

Вашкомментарии приветствуются

---------------------------- обновлено

enter image description here

...