Russian Qt Forum
Ноябрь 25, 2024, 03:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Видимость JavaScript  (Прочитано 1847 раз)
Nerfair
Гость
« : Июль 23, 2012, 15:04 »

Добрый день,

есть проект состоящий из нескольких .QML файлов и .JS файла.

Основной main.qml, и MainButton.qml с MainText.qml в которых хранятся кнопка и текст.

Проблема следующая, из .js файла я могу изменять текст находящийся в main.qml, а так же вызывать .js функции которые небыли занесены в .js файл и находятся в .qml файле, но компилятор ругается что .js файл не может найти элемент если этот самый элемент находится не в main.qml, а в других .qml файлах.

Коротко говоря.

Есть два text элемента, с id: mainText (находится в main.qml) и id: secondText (находится в MainText.qml), так вот если в
example.js подключенному к проекту прописать mainText.Text = "2222"; то текст будет изменен. Если же написать secondText.Text = "1312"; то текст изменен не будет, и выведет ошибку

example.js:5: ReferenceError: Can't find variable: secondText

Самое интересное что Qt Creator в .js файле сам помогает заполнить переменную secondText, а так же находит ее в QML файле по ctrl+click, но в остальных случаях - ее как буд то не существует.



C функциями такая же проблема, из main.qml видит, из всех остальных .qml файлов - нет.
Записан
lighting
Гость
« Ответ #1 : Июль 23, 2012, 17:01 »

Но ведь у тебя этот MainText как-то в main.qml фигурирует? Вот через него и надо делать, напр. так
main.qml
Код
Javascript
...
MainText {
id: mainText
text_to_change: "hello world"
...
 
MainText.qml
Код
Javascript
...
property alias text_to_change: secondText.Text
...
 
После этого совершенно спокойно можно будет вызвать его так
mainText.text_to_change = "World, hello!"
PS: набивал прямо здесь так что могут быть мелкие ошибки, но смысл думаю понятен
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.359 секунд. Запросов: 21.