[gelöst] Textfeld an das Formular "binden" (andock

Verschiedenes zu Qt
Antworten
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

[gelöst] Textfeld an das Formular "binden" (andock

Beitrag 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
Zuletzt geändert von crossfader am 23. September 2010 17:11, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal mit Layouts beschäftigt?
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

Beitrag von crossfader »

Ja, ein wenig. Um Sachen tabellarisch anzuordnen. Danke für den Tipp‼ Ich werde mal die Dokumentation zu Rate ziehen :)
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

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

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

Beitrag von upsala »

Oder, da ein Hauptfenster meist ein QMainWidget ist, könnte man auch mal setCentralWidget versuchen...
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

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

Beitrag 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.
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

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

Beitrag von upsala »

Du könntest auch mal deine .ui-Datei hochladen.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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>.
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

Beitrag 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?
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag 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" (Ist ein Button mit drei blauen Streifen) Damit passt sich dein zentrales Layout dann immer der Größe des Fensters an.

Mfg androphinx
crossfader
Beiträge: 31
Registriert: 18. September 2010 21:21
Wohnort: Lengerich
Kontaktdaten:

Beitrag 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!
Antworten