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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача параметров между страницами в PageStack  (Прочитано 3679 раз)
lighting
Гость
« : Февраль 04, 2012, 22:31 »

как сие можно организовать?
В ассистанте написано что надо биндить параметры, а если не выходит то передавать в качестве параметра функции push.
Первый способ у меня не прокатывает. Делаю

Код
C++ (Qt)
Page {    
    id: startPage
    property alias selectedBg:preview.source
 
...
            Image {
            id: preview
            anchors.fill: parent
            fillMode: Image.PreserveAspectFit
            source: folderListView.filename
        }
...
}
Затем из другой страницы пытаюсь вызвать так

Код
C++ (Qt)
   Image {
       id: bg
       anchors.fill: parent
       fillMode: Image.PreserveAspectFit
       source: startPage.selectedBg
   }
На это получаю ошибку  ReferenceError: Can't find variable: startPage хотя startPage на этот момент находится в стеке.
Второй способ получается, но во-первых так можно только один параметр передать, а во-вторых надо его через все промежуточные страницы тащить что неудобно. Подскажите как решить эту проблему.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Февраль 04, 2012, 23:38 »

Создаешь свойство во второй странице (message из примера), а затем в push'е передаешь для него значение (pageStack.depth+1).

Код:
pageStack.push( componentPage, {message: pageStack.depth+1});
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
lighting
Гость
« Ответ #2 : Февраль 05, 2012, 10:37 »

это и есть второй описанный мною способ - его неудобства я тоже выше описал.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #3 : Февраль 05, 2012, 20:20 »

Биндинг через страницы еще корявей будет.. В pageStack страницы с id startPage не будет существовать (поэтому и ошибка), может можно пошаманить с currentPage, но это уже попахивает говнокодом)

P.S. еще вариант описать нужные свойства в main.qml, к нему доступ есть отовсюду.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
lighting
Гость
« Ответ #4 : Февраль 06, 2012, 14:45 »

так и буду делать, пример этого есть в flikr demo. Они его переписали, у меня 4.7 стоит и установленный у меня example сильно отличается от того что на сайте выложено, вот я сразу и не заметил.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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