Seite 1 von 1
[gelöst] Textfeld an das Formular "binden" (andock
Verfasst: 18. September 2010 22:27
von crossfader
Hi!
Ich gehe mal davon aus, dass diese Frage schon x³² mal gestellt wurde, ich wage aber den Versuch und stelle sie noch einmal.
Wie ist es möglich, dass sich eine PlainTextBox an die größe des Hauptfensters anpasst? Wenn ich das Fenster also maximiere, soll sich die Box dementsprechend vergrößern.
Ich habe das Buch von Jügen Wolff, darin aber nichts gefunden - im Internet und hier auch nichts. Also wäre ich über eine einfache Antwort sehr dankbar!
Gruß,
Olli
Verfasst: 18. September 2010 22:48
von upsala
Schon mal mit Layouts beschäftigt?
Verfasst: 18. September 2010 23:10
von crossfader
Ja, ein wenig. Um Sachen tabellarisch anzuordnen. Danke für den Tipp‼ Ich werde mal die Dokumentation zu Rate ziehen

Verfasst: 19. September 2010 17:30
von crossfader
Ich bin am verzweifeln.. kann mir evnentuell jemand einen weiteren Tipp geben?
Ich schätze zwar, dass es etwas mit der Funktion sizeConstratint() zu tun hat, bin mir aber nicht sicher - gerade weil es 1. nicht funktioniert hat und 2. ich darübr nichts gefunden habe..
Verfasst: 19. September 2010 17:55
von franzf
Code: Alles auswählen
QWidget* hauptFenster = new QWidget;
QVBoxLayout* layout = new QVBoxLayout;
hauptFenster->setLayout(layout);
layout->addWidget(widget1);
layout->addWidget(widget2);
// usw
Das layout "dockt" sich an das hauptFenster, wenn sich dieses in der Größe ändert, werden die Widgets im layout automatisch an die neue Größe angepasst. Wenn du nur ein Widget in das Layout packst, dann wird halt das eine Widget größer/kleiner, wenn das hauptFenster größer/kleiner wird.
Verfasst: 19. September 2010 18:11
von upsala
Oder, da ein Hauptfenster meist ein QMainWidget ist, könnte man auch mal setCentralWidget versuchen...
Verfasst: 19. September 2010 18:18
von crossfader
Okay, das hat endlich geklappt.
Da ich aber nicht bei simplen Anwendungen bleiben möchte, erstelle ich die Fenster meistens mit dem QtDesigner. Ist es da auch möglich ( in den Eigenschaften ) das Anpassen der Widgets zu regeln?
Gruß,
Olli
PS.: Danke für eure Unterstützung!
Verfasst: 19. September 2010 18:26
von franzf
crossfader hat geschrieben:Da ich aber nicht bei simplen Anwendungen bleiben möchte, erstelle ich die Fenster meistens mit dem QtDesigner. Ist es da auch möglich ( in den Eigenschaften ) das Anpassen der Widgets zu regeln?
Auch im Designer gibts Layouts. Entweder übers Kontextmenü oder linke Seite -> Layouts -> passendes auf das Widget ziehen, dessen children ausgerichtet werden sollen.
Verfasst: 19. September 2010 18:33
von crossfader
Ja, das habe ich ja schon versucht. Sonst würde ich mich nicht an die Community wenden.
Was ich getan habe:
Ein Vertival Layout in die Form gezogen und dann der Formgröße angepasst. Anschließend eine PlainTextBox reingezogen und mit den sizeConstraint Attributen des Layouts rumgespielt - nichts. Die Box blieb gleich groß.
Kannst du mir eventuell für den Designer ein konkretes Beispiel oder einen Link oder irgentetwas geben/schicken/schreiben?
Verfasst: 19. September 2010 19:02
von upsala
Du könntest auch mal deine .ui-Datei hochladen.
Verfasst: 19. September 2010 19:07
von franzf
Die ui-Datei wird nicht so viel bringen.
Ich mach normalerweise die Variante über rechtsclick -> Layout <...>, Layout über die Einträge in der Liste links mach ich nie. Drum hab ich auch erst jetzt gesehen, dass dabei ein neues Fenster eingefügt wird, für das das Layout gesetzt wird. Dieses zusätzliche Widget taucht in der Liste rechts nicht auf, umsetzen geht also nicht. Also: child-Widgets ins parent-Widget ziehen, im parent-Widget rechtscklick->layout-><auswählen>.
Verfasst: 19. September 2010 20:39
von crossfader
franzf hat geschrieben:Ich mach normalerweise die Variante über rechtsclick -> Layout <...>
Darf ich nochmal unauffällig fragen, welche Option du dann auswählst?
Verfasst: 20. September 2010 16:14
von androphinx
Also ich hab das gerade nochmal im Designer versucht, funktioniert anscheinend aber wie im Qt Creator. Meine Verfahrensweise ist die folgende:
1. Erstelle die Form in einem zentralen Layout, das vorerst die Größe des Fensters hat.
2. Wähle das Fenster aus (einfach in der Objektanzeige draufklicken) und wähle dann oben "Objekte senkrecht anordnen"

st ein Button mit drei blauen Streifen) Damit passt sich dein zentrales Layout dann immer der Größe des Fensters an.
Mfg androphinx
Verfasst: 20. September 2010 19:34
von crossfader
Super geil! Ich danke dir vielmals! Jetzt hat es funktioniert. Ich habe die ganze Zeit versucht, irgentwie am Layout irgentetwas auszurichten, dass man die Form anklicken muss, wusste ich nicht!
Danke dir!