QT - Sprawdzanie checkbox i generowanie wyniku w jednej zmiennej

0

Witam

Próbuje opracować algorytm sprawdzający checkboxy i na podstawie wyniku tego sprawdzania stworzyć jedną zmienna string. Sprawa wygląda tak: mam teraz 6 checkboxów (ale będzie ich więcej) chce je sprawdzić i jeżeli są zaznaczone dodać wartość tego checkbox'a do zmiennej. Zaznaczone mam checkbox 1, 2, 5. Zmienna string o nazwie elementy po sprawdzeniu wszystkich checkboxów powinna zawierać coś takiego "E1, E2, E5"

myślałem żeby zrobić coś takiego:

     std::string elementy;
    int n;
    for (n=1; n<7; n++)
    {
        if(ui->checkBox_n???->isChecked()) elementy+=ui->checkBox_n???->text(); 
    }

ale nie wiem jak rozwiązać problem sprawdzania kolejnych checkboxów i dodawania do zmiennej elementy kolejnych wartości znajdujących się przy checkboxie. Chcę mieć 1 zmienną z wynikiem ponieważ chce ją wstawić do 1 komórki bazy danych. Program pisze w QT SDK. Za wszelkie błędy przepraszam dopiero uczę się programować obiektowo i graficznie. Wcześniej zajmowałem się tylko C dla mikro-kontrolerów AVR

0

Możesz stworzyć te CheckBoxy dynamicznie. Wtedy będzie to wyglądało tak:

QCheckBox *cb = new QCheckBox[n];
//...
for(int i=0; i<n; i++)
   if(cb[i].isChecked()) //itd
//...
delete [] cb;
0

Wydaje mi się, że jest kilka możliwości:

  1. Możesz budować sobie jakąś tablicę informacji o stanie tych checkboxów, którą będziesz aktualizował w slocie podpiętym do sygnału o zmianie checkboxa. Potem ją sobie zapiszesz jak chcesz.
  2. Możesz trzymać (stałe) wskaźniki do tych checkboxów i kiedy potrzeba iterować po tej tablicy. To wymaga stworzenia takiej tablicy, np. w konstruktorze okna.
  3. Możesz użyć tej funkcji, żeby iterować po elementach UI.

Edit: Albo oczywiście tak, jak sugeruje kolega wyżej, ale wtedy zapomnij o designerze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1