Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: UVV от Август 21, 2009, 08:13



Название: QRadioButton::toggled(bool)
Отправлено: 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);
 
а затем уже выбираю ту, которая будет выбрана по умолчанию.
Есть ли более красивое решение?


Название: Re: QRadioButton::toggled(bool)
Отправлено: spectre71 от Август 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());


Название: Re: QRadioButton::toggled(bool)
Отправлено: UVV от Август 26, 2009, 09:36
Спасибо, мысль понял.