Seite 1 von 1

[gelöst] CheckBoxen lassen sich nicht anklicken

Verfasst: 17. April 2010 10:48
von universe
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?

Verfasst: 17. April 2010 12:49
von upsala
Warum kann man die anderen Checkboxen nicht anklicken? Sind sie disabled? Warum willst du kein Layout verwenden?

Aus dem Codefragment ist kein Fehler erkennbar.

Re: CheckBoxen lassen sich nicht anklicken

Verfasst: 17. April 2010 13:42
von Troll.Soft
universe hat geschrieben:QCheckBox *check = new QCheckBox;
Dein Code hält sich nicht an das, was bei Qt üblich ist.
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

Verfasst: 17. April 2010 15:36
von universe
Hallo,

mit den Eltern hast du natürlich recht. Aber es funktioniert auch nicht, wenn ich Eltern angebe. Also ich möchte, dass das ganze so aussieht:

Verfasst: 17. April 2010 16:04
von universe
Ich möchte das gerne so anzeigen, weil das Fenster sonst viel zu breit wird, da noch mehrere Labels dazukommen.

Verfasst: 17. April 2010 16:10
von franzf
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

Verfasst: 17. April 2010 16:54
von upsala
Schon mal an eine Tabelle gedacht?

Verfasst: 19. April 2010 14:42
von universe
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;

Verfasst: 19. April 2010 16:29
von franzf
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.

Verfasst: 19. April 2010 19:28
von upsala
Du willst eine QCheckBox haben, die 100x100-Pixel groß ist?