Anzeige:
Ergebnis 1 bis 5 von 5

Thema: QCheckboxen ausschalten

  1. #1
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594

    QCheckboxen ausschalten

    Hallo Mitleser!

    Ich habe folgendes Problem mit QCheckboxes, und zwar habe ich so um die 20 Stück in drei verschiedenen QButtonGroups angeordnet, sodass ich immer die id einer solchen bekommen kann. Nun möchte ich es erreichen, dass, sobald 5 dieser checkboxen angewählt wurden, alle anderen nicht mehr anwählbar sind.

    Ich habe einen counter, der dieses mitzählt, der auch funktioniert. Nun weiß ich nicht, wie ich die checkboxen ausschalten soll. Ich habe pro Button Group ein array von boolschen Werten angelegt, wobei ein Wert TRUE ist, wenn eine checkbox ausgewählt ist, und FALSE, wenn nicht. Nun will ich mit einer for Schleife durch die arrays gehen, und mithilfe von QButtonGroup::find() die jenigen ausschalten, die nicht angewählt sind. An dieser Stelle weiß ich nicht mehr weiter, weil ich nicht weiß, wie das dann mit den Pointern gemacht wird (dieses Konstrukt werde ich wohl nie begreifen).

    Könnt Ihr mir da helfen?

    Danke und ich hoffe es war verständlich

    fs111

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Du kannst alle QWidgets mit setEnabled(false) deaktivieren bzw. mit true aktivieren.

    Ich weiß jetzt nicht wie dein Code aussieht, aber wenn ich dich richtig verstanden habe, ist in etwa so

    Code:
    for (uint id =0; id < maxid; ++i)
    {
        QButton* checkBox = buttonGroup->find(id);
        if (checkBox != 0)
        {
            checkBox->setEnabled( enableCB[id] );
        }
    }
    Wobei ich annahm, dass
    - die ButtonGroup Variable buttonGroup heißt.
    - maxid die größe ID ist
    - enableCB der Array ist, in dem steht, welche CheckBox aktiv sein soll.

    hth,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Das sieht so schon ganz gut aus, nur müsste es andersrum funktionieren, und zwar soll dass array ausgewertet werden, und überall, wo da "false" drinsteht, soll der Knopf ausgeschaltet werden.

    Um es mal zu verdeutlichen, ich habe einen Dialog in dem man sich eine Pizza zusammenstellen kann, nur sind eben nicht mehr als 5 Zutaten pro Pizza möglich. Wenn jetzt also 5 Zutaten ausgewählt sind, dann sollen alle anderen nicht mehr anklickbar sein. Es muss also nach Auswahl der 5. Zutat das array mit den true und false Werten ausgewertet werden, und alle die auf false sind, also nicht ausgewählt sind, sollen disabled werden.

    Danke und Grüße

    fs111

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Das tut es doch mehr oder weniger schon

    Wenn im Array enableCb true steht, bleibt die CheckBox enabled.
    Wenn false drinnen steht, wird sie disabled.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Alles klar, habe es hinbekommen, Danke für den Ansatz!


    Grüße fs111

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •