[gelöst] CheckBoxen lassen sich nicht anklicken

Alles rund um die Programmierung mit Qt
Antworten
universe
Beiträge: 9
Registriert: 23. Februar 2010 12:17

[gelöst] CheckBoxen lassen sich nicht anklicken

Beitrag 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?
Zuletzt geändert von universe am 19. April 2010 14:44, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: CheckBoxen lassen sich nicht anklicken

Beitrag 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
universe
Beiträge: 9
Registriert: 23. Februar 2010 12:17

Beitrag 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:
Dateianhänge
temp.JPG
temp.JPG (39.77 KiB) 4500 mal betrachtet
universe
Beiträge: 9
Registriert: 23. Februar 2010 12:17

Beitrag von universe »

Ich möchte das gerne so anzeigen, weil das Fenster sonst viel zu breit wird, da noch mehrere Labels dazukommen.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal an eine Tabelle gedacht?
universe
Beiträge: 9
Registriert: 23. Februar 2010 12:17

Beitrag 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;
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du willst eine QCheckBox haben, die 100x100-Pixel groß ist?
Antworten