GroupBox unsichtbar machen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
QtFanboy
Beiträge: 2
Registriert: 16. November 2011 12:43

GroupBox unsichtbar machen

Beitrag von QtFanboy »

Hallo,
ich bin qt Neuling und möchte beim Klick auf einen Button eine GroupBox unsichtbar machen (und beim Klick auf einen anderen Button diese wieder sichtbar machen).
Hatte gehofft, dass es ganz einfach geht mit "hide(GroupBox);" ... und "void hide();" steht bei mir im Header unter public slots.
Aber dabei kommt die Fehlermeldung "GroupBox was not declared in this scope". ("GroupBox" ist der Name der GroupBox). Vor vielen Jahren habe ich mal mit Delphi gearbeitet, da hat lediglich die Zeile "GroupBox.visible=false" genügt... aber hier muss man offensichtlich die GroupBox noch irgendwie deklarieren, ich weiß nur leider nicht wie.
Ich hoffe aber immernoch dass es ganz simpel mit 2-3 Zeilen Code funktioniert =)

Grüße,
QtFanboy
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: GroupBox unsichtbar machen

Beitrag von Christian81 »

Eine Variable GroupBox zu nennen ist nicht gerade sinnvoll - das bringt nur Verwechslungen. Member sollten z.. immer mit m_ oder m anfangen.
Zu deinen Problem: Ohne Code können wir nichts sagen. Sieht so aus als würde die Variable nicht wirklich 'GroupBox' heißen - sonst würde der Compiler ja nicht meckern.

Abgesehen davon wäre es dann GroupBox.hide() und nicht hide(GroupBox) -> C++ Grundlagen !
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
QtFanboy
Beiträge: 2
Registriert: 16. November 2011 12:43

Re: GroupBox unsichtbar machen

Beitrag von QtFanboy »

Also jetzt mal ausführlicher:
Habe den Qt Designer verwendet und eine GroupBox in mein Fenster geschoben. Habe den Standardnamen "GroupBox" einfach so belassen.
Dann habe ich noch einen Button eingefügt und mit Signale&Slots eine Funktion ("changeBezierBspline()") erzeugt. Beim Klick auf den Button sollen zwei Dinge passieren: Eine Variable ("button") soll hoch gezählt werden und die GroupBox soll unsichtbar werden. Hier der entsprechende Code aus meiner cpp:
button = 0;
...
void MyPanelOpenGL::changeBezierBspline(){
button = button+1;
GroupBox.hide();
updateGL();
}

und aus der meiner Header:
private:
int button;
public slots:
void changeBezierBspline();

Das Hochzählen der Variable funktioniert.
Ich weiß halt nur nicht wo und wie ich "GroupBox" deklarieren soll; Hatte gehofft dass dies automatisch geschieht wenn ich eine GroupBox mittels QtDesigner einfüge.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: GroupBox unsichtbar machen

Beitrag von solarix »

Wenn du im Designer eine Form entwirfst, ist das Ergebnis ja eine "ui"-Datei (die XML-Beschreibung) und später (nach dem Compilen) eine C++-Header-Datei mit einer entsprechenden Klasse. Du kannst diese auf drei Arten anwenden. Siehe

http://doc.qt.nokia.com/latest/designer ... -file.html

Weil du nicht schreibst, welche Variante du genommen hast (Direct, Single Inh., oder Multi Inh.) können wir dir auch nicht den genauen Syntax mitteilen..

Kleiner Hinweis noch: Egal ob du selbst ein Pointer deklarierst oder ob du den Pointer einer UI-Klasse nimmst: es ist ein Pointer und du brauchst daher auch die Pointer-Schreibweise:

Code: Alles auswählen

 mMeineBox->hide();

Aber wie Christian schon gesagt hat: das sind C++-Grundlagen.. es wäre besser wenn du die dir aneignen würdest, bevor du mit Qt beginnst..

hth
Antworten