Signal wenn Fenster nicht mehr maximiert ist.

Alles rund um die Programmierung mit Qt
Antworten
daimonion
Beiträge: 6
Registriert: 27. Juni 2007 15:46

Signal wenn Fenster nicht mehr maximiert ist.

Beitrag von daimonion »

Hallo

Ich bin recht neu in der QT-Programmierung drin und hab schon die erste Frage.

Wie kann ich denn das Signal abfangen, wenn der Benutzer in einem maximiertem Fenster den Button fürs maximieren drückt, so dass das Fenster nicht mehr maximiert ist und wieder als ganz normales Fenster angezeigt wird.

Grund:

Ich will dann ein Resize machen -->

Code: Alles auswählen

this->resize(1024x768);
Danke schon mal für eure tipps

Gruß
Daimonion
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag von @udisello »

Wenn ich dich richtig verstanden habe, willst du dann dein Fenster wieder maximieren??? Wenn dem so ist, kannst Du auch einfach den Maximieren Button wegnehmen.
MfG @udisello

Qt Version 4.3.0, MS VS 2005
daimonion
Beiträge: 6
Registriert: 27. Juni 2007 15:46

Beitrag von daimonion »

Ne, nicht ganz. Ich will das Fenster, wenn es aus dem maximierten Modus kommt, so resizen, dass es eine akzeptable Größe hat..

Das Problem ist, wenn ich das Programm starte, soll es direkt maximiert gestartet werden.

Das mache ich folgendermaßen:

Code: Alles auswählen

	if (!this->isMaximized()) {
		
		this->showMaximized(); 
	}
Wenn das Fenster dann aus diesem Modus mittels Button rausgeholt wird, dann sieht es natürlich total blöd aus, weil es sehr klein ist.

Mir ist aber gerade die Idee gekommen, bevor ich es mittels oben genannten code vergrößere erst mal zu resizen.. dann siehts auch wieder normal aus, wenn es aus dem maximierten Modus wieder rauskommt.

Code: Alles auswählen

	this->resize(1024,768);
	if (!this->isMaximized()) {
		
		this->showMaximized(); 
	}
Grüße Daimonion
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warum gehst du eigentlich davon aus, daß der Benutzer eine Desktopgröße von 1024x768 Pixel hat? Und warum denkst du, dem Benutzer verbieten zu müssen, ein Fenster zu verkleinern?
daimonion
Beiträge: 6
Registriert: 27. Juni 2007 15:46

Beitrag von daimonion »

Ich gehe nicht davon aus, dass ein Benutzer 1024x768 Pixel hat. Das ist eher nur eine Annahme.

Ich hab diesen Wert gewählt, damit das Fenster, wenn es aus dem maximierten Modus kommt, nicht derart klein ist, dass man es erst wieder vergrößern muß um etwas zu erkennen. Die Größen an sich ist egal. Das Fenster ist so aufgebaut, dass sich die enthaltenden Elemente (Dockwidgets, Tabwidgets) selber an die Größe anpassen. Is halt nur so, dass man nichts mehr erkennt, wenn es zu klein ist.

Des Weiteren kann ich davon ausgehen, dass das Programm ausschließlich auf Desktopsystemen größer 1600x1050 arbeitet.

Die Lösung die ich jetzt reinprogrammiert habe, ist meiner Meinung nach ein Workaround.

Ich würde es lieber so machen, dass beim Verlassen des maximierten Modus ein Signal ausgelöst wird, welches ich dann bedienen kann.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

daimonion hat geschrieben:Is halt nur so, dass man nichts mehr erkennt, wenn es zu klein ist.
Schon mal was von Layouts gehört? Gib deinem Fenster, bzw. den einzelnen Widgets, doch einfach eine Mindestgröße und fertig.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
daimonion
Beiträge: 6
Registriert: 27. Juni 2007 15:46

Beitrag von daimonion »

Interessant. Im Laufe meiner Entwicklung hab ich genau das gemacht, so dass ich das resize getrost wieder wegschmeißen kann..


Nun will ich aber interessehalber dennoch wissen, ob das mit auch prinzipiell mit nem Signal gehen würde....
Antworten