PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : QT-Designer und Fenstergroesse



neo2k
21-04-2005, 17:10
Hallo,

ich habe mir ein schoenes Programm mit dem QT-Designer gebastelt. Wenn ich das laufen lasse dann kann ich da zwar von dem Gesamtfenster die Groesse veraendern, aber die Inhalte passen sich nicht an.

Wo kann ich den Widgets sagen das sie sich anpassen sollen um die Groesse eines Programmfensters sinnvoll einstellen zu koennen ?

Vielen Dank
Torsten

peschmae
21-04-2005, 17:56
Benutzt du denn einen Layoutmanager?

MfG Peschmä

neo2k
22-04-2005, 00:35
gute frage, ich denke schon, also ich habe mir das fenster zusammengeklickt und dann in eine .ui.h datei den code reingeschrieben. Anordnung der Widgets hab ich alles durch klicken gemacht.

Boron
22-04-2005, 07:31
Die GUI-Elemente im Designer kannst du mit den Buttons für "Horizontal", "Vertikal" und "Grid-Layout" anordnen (die Buttons heißen so ähnlich).

Einfach mit gedrückter Strg-Taste ein paar Elemente markieren und dann den gewünschten Button drücken. Ein roter Rahmen erscheint um die gruppierten Elemente.

Wenn du das mit allen Elementen gemacht hast, dann klickst du das Dialogfenster, das du gerade entwirfst an und gibst diesem auch ein passenden Layout mit einem der Buttons.

Dann kannst du das Fenster vergrößern und verkleinern und der Fensterinhalt passt sich an.

Vergiss nicht den Elementen sinnvolle Mindest-, Maximalgrößen und fixe Größen zu geben wo es notwendig erscheint.
Du kannst auch bestimmen wie ein Element sich vergrößern darf.

Tipp:
Vergiss den Ansatz mit der ui.h Datei. Der ist OberRiesenDoppelMist.
Besser ist es von der erstellten Klasse abzuleiten.

Bsp:
Im Designer erstellst du den Dialog mit Namen DialogBase.
In deiner Anwendung erstellst du eine neue Klasse Dialog, die von DialogBase erbt. In der Klasse Dialog kannst du sehr einfach auf die GUI-Elemente von der Base Klasse zugreifen, weil die alle public sind.

Wenn du irgendwann mal was debuggen musst, dann geht das mit der ui-h Datie nicht. Wenn du die Vererbungsvarainte nutzt, dann geht das.
Außerdem ist die Trennung von Oberfläche und Funktionalität viel schöner.

neo2k
22-04-2005, 08:12
Herzlichen Dank fuer die ausfuehrliche Antwort. Ich werde mir beides heute mal anschauen.

anda_skoa
22-04-2005, 11:25
Tipp:
Vergiss den Ansatz mit der ui.h Datei. Der ist OberRiesenDoppelMist.
Besser ist es von der erstellten Klasse abzuleiten.


FULL ACK

Vorallem für Anfänger, das kann man höchstens als Fortgeschrittener Qt Entwickler machen, wenn man ein bis drei primitve Slots in einem Widget braucht und dazu keine Membervariablen.

Ciao,
_