PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Namen einer QCkeckbox aus Variablen zusammensetzen



celindir
09-07-2003, 09:02
Hallo zusammen,

da bin ich mal wieder mit einer neuen Frage:

Wie kann ich den Namen eines Objekts aus Variablen zusammensetzen?

Oh jeh, ich weiss noch nicht mal, ob die Frage so richtig gestellt ist.
Deshalb ein kleines Beispiel:

Ich habe 10 QCheckBoxes benannt mit cb_1, cb_2 ... cb_10

Nun möchte ich in einer for Schleife den Status aller 10 Checkboxen abfragen, um etwas damit zu tun


for (int i = 1 ; i <= 10; i++)
{
if ( cb_+i ->isChecked() ) do_something()
}

Dummerweise ist aber "cb_+i" für QT keine QCheckbox.

Wie muss ich es also schreiben, damit QT cb_+i als cb_1 oder cb_2 akzeptiert??

Sachdienliche Hinweise sind sehr willkommen.

Könnte mir vorstellen, dass es dazu schon was im Forum gibt, habe aber keine gescheiten Suchbegriffe gefunden.

tuxipuxi
09-07-2003, 09:32
hey,


wie waere es mit einem array von checkboxes?

QCheckBox* checkboxes[10];

in deinem ctor dann halt sowas:

checkboxes[1] = new QCheckBox( "blablub", this );

und deine schleife:

for( int i=0; i < 10; ++i ) {
if( checkboxes[i] -> isChecked() ) do_something();
}


gruss,

tuxipuxi.

anda_skoa
09-07-2003, 15:03
Original geschrieben von celindir

Dummerweise ist aber "cb_+i" für QT keine QCheckbox.

Wie muss ich es also schreiben, damit QT cb_+i als cb_1 oder cb_2 akzeptiert??


Das hat nichts mit Qt zu tun, das ist schon eine Frage im C++

Der + Operator auf einen Pointer ist ein Indexzugriff (Pointerarithmetik). Da dein Pointer aber nicht auf eine Posttion in einem Array zeigt, dürfte das einen Segfaukt produzieren.

Wenn die Anzahl der Checkboxen konstanz ist, würde ich den Vorschlag von tuxipuxi versuchen.

Ciao,
_

celindir
10-07-2003, 09:44
Hi zusammen,

Danke für die Erläterungen und den Vorschlag.

Die Variante mit dem Array hat funktioniert.

Gruß