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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRadioButton::toggled(bool)  (Прочитано 4693 раз)
UVV
Гость
« : Август 21, 2009, 08:13 »

Есть форма в дизайнере, на ней лежит QGroupBox. В нём присутствуют 2 QRadioButton'a.
В дизайнере добавил по 2 связи signal/slot для каждой radioButton следующего вида:
Код
C++ (Qt)
connect(radioButton1, toggled(bool), lineEdit1, setEnabled(bool));
connect(radioButton1, toggled(bool), lineEdit2, setEnabled(bool));
connect(radioButton2, toggled(bool), lineEdit3, setEnabled(bool));
connect(radioButton2, toggled(bool), lineEdit4, setEnabled(bool));
 

Получается следующая ситуация. При запуске формы и выборе по умолчанию, скажем, radioButton1, слоты 3-его и 4-го lineEdit'a не сработают.
Т.е. после первого измения состояния кнопки radioButton2, всё будет работать, как и должно.
Пока я решил сделать так. В конструкторе диалога прощёлкиваю все кнопки
Код
C++ (Qt)
radioButton1.setChecked(true);
radioButton2.setChecked(true);
 
а затем уже выбираю ту, которая будет выбрана по умолчанию.
Есть ли более красивое решение?
Записан
spectre71
Гость
« Ответ #1 : Август 21, 2009, 08:20 »

Код
C++ (Qt)
connect(radioButton1, toggled(bool), lineEdit1, setEnabled(bool));
connect(radioButton1, toggled(bool), lineEdit2, setEnabled(bool));
connect(radioButton2, toggled(bool), lineEdit3, setEnabled(bool));
connect(radioButton2, toggled(bool), lineEdit4, setEnabled(bool));
 
lineEdit1->setEnabled(radioButton1->isChecked());
lineEdit2->setEnabled(radioButton1->isChecked());
lineEdit3->setEnabled(radioButton2->isChecked());
lineEdit4->setEnabled(radioButton2->isChecked());
Записан
UVV
Гость
« Ответ #2 : Август 26, 2009, 09:36 »

Спасибо, мысль понял.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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