QWizard, Контроль над кнопкой Next |
Здравствуйте, гость ( Вход | Регистрация )
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
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kalombo |
18.11.2008, 20:43
Сообщение
#3
|
Студент Группа: Участник Сообщений: 37 Регистрация: 5.8.2008 Пользователь №: 252 Спасибо сказали: 0 раз(а) Репутация: 0 |
посмотри пример %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 |
|
|
Текстовая версия | Сейчас: 24.4.2024, 2:22 |