Итерация по QButtonGroup::buttons приводит к сбою ⇐ C++
Итерация по QButtonGroup::buttons приводит к сбою
Это мое определение символа:
auto box1=новый QCheckBox; box1->setText("выбор1"); auto box2 = новый QCheckBox; box2->setText("выбор2") Кнопка QPushButton* = новая QPushButton; Connect(button,&QPushButton::clicked,this,&Widget::onClicked); автоматическая группа = новая QButtonGroup; группа->setExclusive(ложь); группа->addButton(box1); группа->addButton(box2); void Widget::onClicked() { std::for_each(group->buttons().begin(),group->buttons().end(),[](QAbstractButton* button){ кнопка->setChecked(!button->isChecked()); }); /* QList button=group->buttons(); std::for_each(buttons.begin(),buttons.end(),[](кнопка QAbstract*){ кнопка->setChecked(!button->isChecked()); }); */ } Вызов buttons() вернет QList.
Я пытался использовать слот onClicked, чтобы перебирать список и что-то делать.
Если я добавлю незакомментированный участок кода, программа выйдет из строя. Я отладил его и обнаружил, что он зациклился три раза, но на самом деле было добавлено только два элемента, а третий цикл приведет к сбою программы.
А если я удалю закомментированный фрагмент кода, всё заработает.
Я хочу знать, почему первый способ написания, то есть код, который не закомментирован, вызовет ошибку.
Это мое определение символа:
auto box1=новый QCheckBox; box1->setText("выбор1"); auto box2 = новый QCheckBox; box2->setText("выбор2") Кнопка QPushButton* = новая QPushButton; Connect(button,&QPushButton::clicked,this,&Widget::onClicked); автоматическая группа = новая QButtonGroup; группа->setExclusive(ложь); группа->addButton(box1); группа->addButton(box2); void Widget::onClicked() { std::for_each(group->buttons().begin(),group->buttons().end(),[](QAbstractButton* button){ кнопка->setChecked(!button->isChecked()); }); /* QList button=group->buttons(); std::for_each(buttons.begin(),buttons.end(),[](кнопка QAbstract*){ кнопка->setChecked(!button->isChecked()); }); */ } Вызов buttons() вернет QList.
Я пытался использовать слот onClicked, чтобы перебирать список и что-то делать.
Если я добавлю незакомментированный участок кода, программа выйдет из строя. Я отладил его и обнаружил, что он зациклился три раза, но на самом деле было добавлено только два элемента, а третий цикл приведет к сбою программы.
А если я удалю закомментированный фрагмент кода, всё заработает.
Я хочу знать, почему первый способ написания, то есть код, который не закомментирован, вызовет ошибку.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Группа реагирования-native-radio-buttons с меткой под (и по центру) переключателя
Anonymous » » в форуме Html - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Группа реагирования-native-radio-buttons с меткой под (и по центру) переключателя
Anonymous » » в форуме CSS - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-