Итерация по QButtonGroup::buttons приводит к сбоюC++

Программы на 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, чтобы перебирать список и что-то делать.

Если я добавлю незакомментированный участок кода, программа выйдет из строя. Я отладил его и обнаружил, что он зациклился три раза, но на самом деле было добавлено только два элемента, а третий цикл приведет к сбою программы.

А если я удалю закомментированный фрагмент кода, всё заработает.

Я хочу знать, почему первый способ написания, то есть код, который не закомментирован, вызовет ошибку.

Вернуться в «C++»