Для дальнейшего управления мне нужно знать на каком именно компановщике произведен сигнал. А их много. Не совсем понимаю как QMap мне в этом поможет. Ну это конечно скорее всего из за моей неосведомленности по поводу этого класса.
Я решил взять старый алгоритм:
Пробежаться по всем нужным мне компановщикам и посмотреть состояние чекбокса. Только вот не свосем понятно где я накосячил, потому чтофункция это делает, но только с первым элементом и только 2 раза (меняет состояние с 0 на 1 и с 1 на ноль), либо со всеми , но тогда она меняет состояния только с 0 на 1, и обратоно делать уже не хочет.
Непонятно вот еще что. У меня есть функция, которая практически точь в точь копирует те же действия, только она не собирает информацию о статусе checkbox, а удаляет выделенный. И вызывается не при сигнале на смену состояния, а специальной кнопочкой.
void OTS_MainWindow::RemoveVariantForSingleAnsverQuestion(QTabWidget *TabWidget)
{
QVBoxLayout *Layout=static_cast<QVBoxLayout*>(TabWidget->currentWidget()->layout()->layout()->itemAt(1));
for (int i=0; i<GlobalVaribles::all[TabWidget->currentIndex()][1];i++)
{
QHBoxLayout* HBoxLayout=static_cast<QHBoxLayout*>(Layout->itemAt(i));
QCheckBox *Seconditem=static_cast<QCheckBox *>(HBoxLayout->itemAt(0)->widget());
if (Seconditem->isChecked()==true)
{
DeleteAllWidgets(HBoxLayout);
delete HBoxLayout;
GlobalVaribles::all[TabWidget->currentIndex()][1]--;
i=GlobalVaribles::all[TabWidget->currentIndex()][1];
GlobalVaribles::all[TabWidget->currentIndex()].resize(GlobalVaribles::all[TabWidget->currentIndex()][1]+2);
}
}
}
Она работает отлично. Все удаляет что не нужно. Отличается она от функции о сборе информации только содержанием if (ну и циклом, но это не принципиально, потому ято и с циклом while все работает точно так же)
Проблемы в работе с этой функцией начинаются тогда, когда я, в функции которая добавляет эти самые компоновщики с чекбоксами делаю коннект к функции которая в первом посте.
При чем вести себя функция удаления начинает точно так же как и функция, описанная в первом посте. Так же не хочет удалять все кроме первого компоновщика.
Я так понимаю что при коннекте чего то не так становится.