crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QWizard, Контроль над кнопкой Next
kalombo
  опции профиля:
сообщение 18.11.2008, 19:37
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 5.8.2008
Пользователь №: 252

Спасибо сказали: 0 раз(а)




Репутация:   0  


Хотел найти, как можно отключить кнопку "Next", нашел следующий способ wizard()->button(QWizard::NextButton)->setEnabled(false);
Проблема в том, как сделать, чтобы кнопка была сразу отключена, при появлении страницы QWizardPage, если добавить этот код в конструктор - программа вылетает, если добавить в initializePage - не работает. Использование полей со звездочками (registerField("element*",wig)) тоже не подходит - путаница получается, когда встроенные фукнции отключают кнопку, а когда мои. Как быть?

Ну и еще небольшой вопрос, сразу же сюда, зачем нужна функция setField(QString, QVariant), когда её используют?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2008, 20:12
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kalombo @ 18.11.2008, 22:37) *
Проблема в том, как сделать, чтобы кнопка была сразу отключена,
посмотри пример %QTDIR%\examples\dialogs\classwizard

Цитата(kalombo @ 18.11.2008, 22:37) *
зачем нужна функция setField
Цитата
This function can be used to set fields on any page of the wizard.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kalombo
  опции профиля:
сообщение 18.11.2008, 20:43
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 5.8.2008
Пользователь №: 252

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2008, 21:12) *
посмотри пример %QTDIR%\examples\dialogs\classwizard


Там это реализовано через registerField("outputDir*") поле со звездочкой, мне это не подходит. Объясняю почему. У меня реализован QGroupBox с тремя QRadioButton, в зависимости от того какой выбрали появляются Edit'ы которые надо заполнить, естественно, какие-то из них не должны быть пустыми или даже все должны быть заполнены. Я решил делать это все вручную, если все Edit'ы удовлетворяют условию, то я отображаю кнопку, иначе - прячу. А вот в самом начале нужно сразу спрятать её, но сделать этого не получается, выше уже написал про мои попытки, ну не через MouseMove её прятать в самом деле же(. Прокатил бы вариант с registerField, если бы была функция unregisterField, но вроде подобной нету.

Цитата
This function can be used to set fields on any page of the wizard.

Я читал, просто не совсем ясно, эта функция нужна для того, чтобы просто изменить значение для которого уже сделали registerField? Или есть другие варианты использования? Я пробовал на первой странице сделать
setField("test","Hello"); // Поле test не было зарегистрировано, а на последующих страницах пробовал это поле прочитать, получал пустую строку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 28.2.2010, 11:47
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

Спасибо сказали: 9 раз(а)




Репутация:   1  


Хотя тема старая напишу тут. Необходимо дизактивировать кнопку Next в определенных случаях. если диалоговое окно хоть раз открылось то кнопка становиться активной. Кто-нибудь может объяснить мне на словах как эти поля работают. Смотрел пример тем не менее, так и непонял где там идет обращение к кнопке.

Сообщение отредактировал breeve - 28.2.2010, 11:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2019, 19:34