Russian Qt Forum

Qt => Qt Quick => Тема начата: Vamireh от Май 18, 2014, 11:04



Название: [РЕШЕНО] Обращение к объекту по id
Отправлено: Vamireh от Май 18, 2014, 11:04
Код:
ApplicationWindow {
    id: window

    CppObject {
        onXChanged: textField.text = x
    }
    ...
    TabView {
        GridLayout {
            ...
            TextField {
                id: textField
            }
        }
    }
}

Почему не работает "onXChanged: textField.text = x", пишет "ReferenceError textField is not defined". Если написать  "onXChanged: window.title = x", то работает


Название: Re: Обращение к объекту по id
Отправлено: gil9red от Май 18, 2014, 11:13
Не видит он того, что textField определен :)
может строку с созданием textField нужно раньше его использования написать? :)


Название: Re: Обращение к объекту по id
Отправлено: Vamireh от Май 18, 2014, 11:35
Да, но тогда я не смогу к этому CppObject позже обратиться. Вообще задача такая:

Есть c++ класс, нужно по сигналу от него поместить значение в текстовое поле. И еще по нажатию кнопки вызвать метод этого класса. Чтобы работало и то и то нужно поместить CppObject в layout того таба, где эти виджеты. Но у меня два таба. Как сделать, чтобы доступ к CppObject был из всех виджетов и при этом из CppObject был доступ ко всем виджетам?


Название: Re: Обращение к объекту по id
Отправлено: Vamireh от Май 18, 2014, 12:26
Сделал через engine.rootContext()->setContextProperty("objName", &obj);

Хотя пришлось лишние методы писать, но работает. Хотя может я просто не понял философию QtQuick еще


Название: Re: [РЕШЕНО] Обращение к объекту по id
Отправлено: navrocky от Май 19, 2014, 11:29
textField случайно не внутри делегата объявлен? внутрь делегата извне доступа нет