[gelöst] CheckBoxen lassen sich nicht anklicken
[gelöst] CheckBoxen lassen sich nicht anklicken
Hallo,
ich habe folgendes Problem und weiß einfach nicht weiter:
Ich möchte eine QWizardPage mit einer ganzen Reihe von Checkboxen anlegen. Die Checkboxen möchte ich manuell positionieren und kein Layout verwenden. Mein Code dazu sieht folgendermaßen aus:
for(int m = 0; m < 3; m++){
QCheckBox *check = new QCheckBox;
check->setGeometry(0,m*10,100,100);
check->show();
}
Wenn ich mein Programm ausführe kann ich aber immer nur die letzte Checkbox anklicken. Kann mir jemand sagen, was ich falsch mache?
ich habe folgendes Problem und weiß einfach nicht weiter:
Ich möchte eine QWizardPage mit einer ganzen Reihe von Checkboxen anlegen. Die Checkboxen möchte ich manuell positionieren und kein Layout verwenden. Mein Code dazu sieht folgendermaßen aus:
for(int m = 0; m < 3; m++){
QCheckBox *check = new QCheckBox;
check->setGeometry(0,m*10,100,100);
check->show();
}
Wenn ich mein Programm ausführe kann ich aber immer nur die letzte Checkbox anklicken. Kann mir jemand sagen, was ich falsch mache?
Zuletzt geändert von universe am 19. April 2010 14:44, insgesamt 1-mal geändert.
-
Troll.Soft
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Re: CheckBoxen lassen sich nicht anklicken
Dein Code hält sich nicht an das, was bei Qt üblich ist.universe hat geschrieben:QCheckBox *check = new QCheckBox;
Deinen Checkboxen fehlen die Eltern (nötig z.B. für die Destruktion).
Die Checkboxen fliegen im luftleeren Raum (man kann sie in slots oder sonstwo nicht ansprechen).
Erzähl mal. warum Du keine Layouts möchtest! (möglicherweise möchtest Du etwas ganz anderes erreichen, als Du denkst damit zu erreichen)
tschüß
Troll.Soft
Du suchst QGridLayout. Und die Label da oben so komisch anzuordnen ist - naja. Ich würd in nem eigenen Widget den Text um 90° gedreht zeichnen oder in ein QLabel Text einfügen, der nach jedem Zeichen nen Zeilenumbruch enthält.
So geht's
So geht's
Hallo,
vielen Dank für eure Antworten. Ich habe alle eure Vorschläge ausprobiert aber leider konnte ich meine Gui nie so erstellen, wie ich mir das vorgestellt hatte. Ich habe jetzt allerdings eine Möglichkeit gefunden.
Ich habe einfach folgendes geschrieben:
QWizardPage *page = new QWizardPage;
QWidget *layoutWidget = new QWidget;
layoutWidget->setParent(page);
for(int i = 0; i < 3; i++){
QCheckBox *check = new QCheckBox(layoutWidget)
check->setGeometry(0,m*10,100,100);
}
layoutWidget->show();
return page;
vielen Dank für eure Antworten. Ich habe alle eure Vorschläge ausprobiert aber leider konnte ich meine Gui nie so erstellen, wie ich mir das vorgestellt hatte. Ich habe jetzt allerdings eine Möglichkeit gefunden.
Ich habe einfach folgendes geschrieben:
QWizardPage *page = new QWizardPage;
QWidget *layoutWidget = new QWidget;
layoutWidget->setParent(page);
for(int i = 0; i < 3; i++){
QCheckBox *check = new QCheckBox(layoutWidget)
check->setGeometry(0,m*10,100,100);
}
layoutWidget->show();
return page;
Das ist aber Müll, da du hartcodiert irgend welche beliebigen Werte für deine Geometry setzt (auch wenn ein "System" dahinter steckt).
Wenn dein Programm auf einem anderen als deinem System läuft schaut das mit hoher Wahrscheinlichkeit ziemlich übel aus.
Checkboxen werden weiter auseinander liegen als unbeding nötig, Label werden sich überschneiden, usw.
Wenn du mit den vorgeschlagenen Lösungen nicht zurecht kommst solltest du zeigen WAS du versucht hast und was dich daran stört, dann kann man dir helfen.
Wenn dein Programm auf einem anderen als deinem System läuft schaut das mit hoher Wahrscheinlichkeit ziemlich übel aus.
Checkboxen werden weiter auseinander liegen als unbeding nötig, Label werden sich überschneiden, usw.
Wenn du mit den vorgeschlagenen Lösungen nicht zurecht kommst solltest du zeigen WAS du versucht hast und was dich daran stört, dann kann man dir helfen.