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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по registerField в QWizard  (Прочитано 3242 раз)
Flake
Гость
« : Июнь 18, 2009, 11:20 »

Здравствуйте.

Чтобы получить значение из выпадающего списка на странице нужно его зарегистрировать. Делаю собственно:
Код
C++ (Qt)
registerField("group*", groupsCombo, "currentText", SIGNAL(currentIndexChanged(QString)) );

Потом получаю:
Код
C++ (Qt)
QString a = field("group").toString();

Таким образом имею текст.

А как мне получить itemData? Оно ведь даже не является проперти.
Записан
ритт
Гость
« Ответ #1 : Июнь 18, 2009, 12:14 »

даа, засада - к виджету не достучаться Грустный
пиши саггест троллям...

в качестве обхода данной проблемы можешь унаследоваться от комбобокса и добавить свойство + геттер/сеттер, ооперирующие с itemData
Записан
Flake
Гость
« Ответ #2 : Июнь 18, 2009, 12:48 »

Спасибо. Вообще у меня есть способ. Состоит он в следующем.

Делается коннект в классе визарда
Код
C++ (Qt)
connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(pageChanged(int)));

А в pageChanged()
Код
C++ (Qt)
switch(pageId) {...}

А т.к. в визарде есть указатели на страницу, то мы имеем доступ.

А что за геттер/сеттер? Можно подробней?
Записан
ритт
Гость
« Ответ #3 : Июнь 18, 2009, 14:10 »

ну как же?
Цитировать
Q_PROPERTY(type name
            READ getFunction // геттер
            [WRITE setFunction] // сеттер
            [RESET resetFunction]
            [DESIGNABLE bool]
            [SCRIPTABLE bool]
            [STORED bool]
            [USER bool]) // из-за ограничений в ветке 4.х USER у наследников игнорится - так что, нам не нужен
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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