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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: uncheck всех QRadioButton  (Прочитано 3714 раз)
dangreen
Гость
« : Сентябрь 06, 2011, 16:37 »

на страничке стекед виджета есть несколько радиобатонов, нужно чтоб по нажатию кнопке все радиобаттаны были пустые(не отмеченые)
если делать по тупому
Код:
    ui->aradio->setChecked(false);
    ui->bradio->setChecked(false);
    ui->cradio->setChecked(false);
    ui->dradio->setChecked(false);
    ui->eradio->setChecked(false);

то нифига не получается, помогите пожалуста  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Сентябрь 06, 2011, 17:20 »

вариант 1: создать список кнопок и анчекнуть их в foreach
вариант 2: пройтись по всем детям стекд виджета, посмотреть кто из них является кнопкой и ее анчекнуть
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
dangreen
Гость
« Ответ #2 : Сентябрь 06, 2011, 18:21 »

вариант 1: создать список кнопок и анчекнуть их в foreach
вариант 2: пройтись по всем детям стекд виджета, посмотреть кто из них является кнопкой и ее анчекнуть

да в том то и смысл что если даже отдельно анчекнуть только тот радиобатон который чекнутый, то нифига не пашет
я специально оставлял в коде анчек одного радиобатано который и чекнул при запуске, нифига...
Записан
dangreen
Гость
« Ответ #3 : Сентябрь 06, 2011, 18:34 »

все решилось обходным путем.... тупо создал пассивный радиобаттон который при старте делаю невидимым, и вместо того чтобы все радиобатоны делать анчекнутами делаю пассивный чекнутым и усе  Смеющийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #4 : Сентябрь 06, 2011, 18:51 »

ой, я перепутал радиокнопки с чекбоксами Улыбающийся теоретически надо все радиокнопки добавить в QButtonGroup и потом вызвать buttonGroup->checkedButton()->setChecked(false), но ты говоришь так не работает...
все решилось обходным путем
это называется хаком Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Drafter
Гость
« Ответ #5 : Сентябрь 07, 2011, 23:52 »

Цитировать
это называется хаком
Такие хаки вызывают каки  Подмигивающий. Зачем плодить невидимок?

Попробуйте что-нибудь вроде:
Код
C++ (Qt)
QList<QRadioButton*> lst = this->findChildren<QRadioButton*>();
foreach(QRadioButton* rbtn, lst) {
    rbtn->setAutoExclusive(false);
    rbtn->setChecked(false);
    rbtn->setAutoExclusive(true);
}

Если используете QButtonGroup, то, перед сбросом радиобаттонов группы, вызовите buttonGroup->setExclusive(false), а потом, после очистки, установите обратно в true.
« Последнее редактирование: Сентябрь 08, 2011, 10:44 от Drafter » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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