If Anweisung



  • Hallo,

    ich bin gerade dabei ein Testprogramm zu programmieren, welches 3 Fragen abfragt in Benutzung von checkboxen. Sprich wenn der User die erste Box selektiert hat kommt er auf stackedWidget Page 1, usw.. Doch nun scheitere ich daran ihm zu sagen wenn man 2 Haken macht kommt der User auf eine Fehlerseite die ihm einen Zurückbutton anbietet um erneut auszuwählen, da eine merhfachanhakenaktion nicht möglich sein soll. Hier einmal der Code-Abschnitt:

    if(ui->checkBox->isChecked()){
                show1();
            }
            show1();
    
            if(ui->checkBox_2->isChecked()){
                show2();
            }
            show2();
    
            if(ui->checkBox_3->isChecked()){
                show3();
            }
            show3();
    

    gibt es eine Möglichkeit da etwas zu verkürzen und alle Reglen in eine zu binden?

    Danke schonmal.



  • Wenn ich richtig verstanden habe, was du willst, benutzt du Qt und den Qt Creator(so sieht der Code jedenfalls aus) und du hast ein StackedWidget, wessen Seite der Nutzer auswählen soll. Meiner Meinung nach gehört zu einem solchen Widget eine Combobox, an der du die entsprechende Seite auswählst. So kann der Nutzer nur ein Item auswählen und du packst direkt eine Verbindung an die Box.
    Das mit den Checkboxen erscheint mir etwas unverständlich...vllt. ein paar weitere Hinweise geben 👍



  • Stimmt da hätte ich auch selber drauf kommen müssen, das gestalten alles viel einfacher. Danke dir



  • if(ui->checkBox_2->isChecked())
    {
        show2();
    }
    show2();
    

    Sinn ?



  • Ja das waren dumme Versuche das Ergibt nicht wirklich einen Sinn xD



  • Ich würde mich aber mal interessieren wie man nun es hinbekommt zu sagen, dass der Eintrag der Combobox auf eine der bestimmten Seiten geht. z.B wenn ich den ersten Eintrag der Liste in der Combobox wähle dann auf weiter klicke und auf die Stackedwidget-Seite 2 komme. Wie würde man das realisieren können da man mit currentIndex() ja nur die aktuelle Auswahl berücksichtigen kann und nicht unterscheiden zwischen dem Index-Nummer 1 oder 2. Was ich brauche wäre etwas wie:

    if(ui->combobox->currentIndex(2){
       show2();
    }
    

    Ich habe es hinbekommen:

    if(ui->comboBox->currentIndex() == 1){
                show1();}
    
            if(ui->comboBox->currentIndex() == 2){
                show2();
            }
    
            if(ui->comboBox->currentIndex() == 3){
                show3();
            }
    


  • Nya wie ich oben schon erwähnt habe, packst du an die QComboBox eine Verbindung, die das currentIndexChanged-Event weiterleitet, bzw. das activated-Event funktioniert auch. Beide liefern dir den Index der gewünschten Seite. Diese muss dann nur noch das QStackedLayout oder was auch immer anzeigen...



  • Das Event CurrentIndexChanged gibt entweder einen QString oder eine Int mit, die sich in so einem Fall hervorragend mit Switch auswerten liesen .....


Anmelden zum Antworten