ReferenceError в изгледа на раздела за бързи контроли на qt

Написах QT Quick програма, използваща TabView. Когато щракна върху бутона b1, който е в Tabview, програмата трябва да извика show_text() и да отпечата текста на b1, но отпечатва „ReferenceError: b1 не е дефиниран“. Всяко предложение ще бъде оценено, благодаря.

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.1



ApplicationWindow {
    function show_text() {
        console.log(b1.text)
    }

    TabView {
        id: tv
        Tab {
            id: tab1
            Button{
                id: b1
                text:"b1's text"
                onClicked: {
                    //console.log(b1.text)
                    show_text()
                }
            }
        }
    }
}

person davy    schedule 21.02.2014    source източник


Отговори (2)


Предайте обекта като параметър

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.1

ApplicationWindow {
    function show_text(myobject) {
        console.log(myobject.text)
    }

    TabView {
        id: tv
        Tab {
            id: tab1
            Button{
                id: b1
                text: "b1's text"
                onClicked: {
                    show_text(b1)
                }
            }
        }
    }
}
person Simon Warta    schedule 26.02.2014

Можете да получите достъп във вашия обект с този пример.

ApplicationWindow {
function show_text() {
    console.log(tv.b1Text);
}

TabView {
    id: tv
    property alias b1Text: b1.text
    Tab {
        id: tab1
        Button{
            id: b1
            text:"b1's text"
            onClicked: {
                //console.log(b1.text)
                show_text()
            }
        }
    }
}

}

person yekmen    schedule 21.02.2014
comment
С qt 5.7 получавам Invalid alias reference. Unable to find id "b1" - person ony; 07.08.2016