[gelöst] Fenster Handling : Maximieren etc.
[gelöst] Fenster Handling : Maximieren etc.
Hallo!
Ich habe ein Haupfenster vom Typ QDialog und darin eingebettet einen Widget-Stack vom Typ QWidgetStack.
Das Hauptfenster verfügt nur über die Buttons "?" und "X", es soll aber Buttons zur Maximierung und Minimierung des Fensters haben. Je nach Aktion, sollen dann auch der eingebette Widget-Stack und die darin enthaltenen Pages Ihre Größe anpassen.
Wie setzte ich die Fenster Knöpfe in der Fensterleiste?
Wie verknüpfe ich die richtigen Aktionen mit Ihnen, sofern das nicht automatisch geschieht?
Wie lasse ich die Widget Pages sich vergrößern/verkleinern?
Ciao
Konrad
Ich habe ein Haupfenster vom Typ QDialog und darin eingebettet einen Widget-Stack vom Typ QWidgetStack.
Das Hauptfenster verfügt nur über die Buttons "?" und "X", es soll aber Buttons zur Maximierung und Minimierung des Fensters haben. Je nach Aktion, sollen dann auch der eingebette Widget-Stack und die darin enthaltenen Pages Ihre Größe anpassen.
Wie setzte ich die Fenster Knöpfe in der Fensterleiste?
Wie verknüpfe ich die richtigen Aktionen mit Ihnen, sofern das nicht automatisch geschieht?
Wie lasse ich die Widget Pages sich vergrößern/verkleinern?
Ciao
Konrad
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Der WinStyle ist abhängig vom benutzten WM unter X11 und unter Windows löst das Windows selbst. Du kannst in KDE beispielweise die Knöpfe der Titelleiste selber setzen.
Um dein Problem zu lösen nimmst du einfach einen QWidget mit WFlags Dialog, damit wird er modal, hat aber alle normalen Knöpfe eines Fensters.
Die Widget Pages innerhalb des Stacks werden normalerweise selbst vergrößert soweit diese nicht statisch sind.
Um dein Problem zu lösen nimmst du einfach einen QWidget mit WFlags Dialog, damit wird er modal, hat aber alle normalen Knöpfe eines Fensters.
Die Widget Pages innerhalb des Stacks werden normalerweise selbst vergrößert soweit diese nicht statisch sind.
Soll das heißen, ich kann mein QDialog Hauptfenster so nicht weiter verwenden, sondern muss es in ein QWidget umwandeln und dann beim erzeugen als dritten Parameter ein Flag mit übergeben?
Mein Programm läuft unter Windows, aber deswegen macht Windows das mit den Knöpfen noch nicht alleine?
Kann Du mir vielleicht erklären, was statisch in Bezug auf die Widget pages heißt? Darunter kann ich mir nichts vorstellen.
Konrad
Mein Programm läuft unter Windows, aber deswegen macht Windows das mit den Knöpfen noch nicht alleine?
Kann Du mir vielleicht erklären, was statisch in Bezug auf die Widget pages heißt? Darunter kann ich mir nichts vorstellen.
Konrad
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Sicher kannst du es weiter verwenden, aber wenn die Knöpfe fehlen kannst du diese nicht hinzufügen. Du könntest sonst nur versuchen, dem Dialog Flags zu übergeben, das dann evtl. die Knöpfe da sind, aber so direkt sagen "Mache Knopf dahin" wird nicht gehen.kowi1134 hat geschrieben:Soll das heißen, ich kann mein QDialog Hauptfenster so nicht weiter verwenden, sondern muss es in ein QWidget umwandeln und dann beim erzeugen als dritten Parameter ein Flag mit übergeben?
Mh, ne anders herum, Windows setzt all deine Knöpfe alleine, das mit dem KDE war nur ein Beispiel, wo man durch die Konfiguration der WM eingreifen könnte.kowi1134 hat geschrieben:Mein Programm läuft unter Windows, aber deswegen macht Windows das mit den Knöpfen noch nicht alleine?
Wenn du keine Layouts benutzt ist eine Seite statisch.kowi1134 hat geschrieben:Kann Du mir vielleicht erklären, was statisch in Bezug auf die Widget pages heißt? Darunter kann ich mir nichts vorstellen.
Aha!
Das klärt viele meiner Fragen, die ich sonst noch hatte, aber nicht unbedingt zu formulieren gewusst hätte.
Und zwar bin ich an Layouts schon so manches mal verzweifelt, denn alles, was ich beispielsweise in eine Grid-Layout gepackt habe wurde an irgendeiner Stelle abgeschnitten
m Qt-Designer sah man dieses Abschneiden jedoch nicht.).
Könnten Spacer mit hierbei aus der Patsche helfen?
Konrad
Das klärt viele meiner Fragen, die ich sonst noch hatte, aber nicht unbedingt zu formulieren gewusst hätte.
Und zwar bin ich an Layouts schon so manches mal verzweifelt, denn alles, was ich beispielsweise in eine Grid-Layout gepackt habe wurde an irgendeiner Stelle abgeschnitten
Könnten Spacer mit hierbei aus der Patsche helfen?
Konrad
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Mh, ich verwendet GridLayout nicht, nur H + VBoxLayout, da ich mit dem Grid auch so einige Probleme hatte. Kommt darauf an, was du für eine Qt Version nimmst, manche Qt Versionen so 3.2.x oder 3.1.x haben im Designer viele Fehler gehabt, könnte also durchaus auch ein wirklicher Fehler sein.
Ein Spacer hilft dir sicherlich, aber was genau hast du denn für ein Problem damit? Poste doch mal ein Bild von dem Designer und dann von der App und evtl. ein drittes, wo du mit rot einzeichnest, was du gerne wo hättest!?
Ein Spacer hilft dir sicherlich, aber was genau hast du denn für ein Problem damit? Poste doch mal ein Bild von dem Designer und dann von der App und evtl. ein drittes, wo du mit rot einzeichnest, was du gerne wo hättest!?
Ich habe Qt 3.3.3 -> mein Designer sollte keine Fehler haben, richtig?
Das Bild 1.jpg enthält die Designer Ansicht. Das Widget ist vom Typ QWidget.
Eine Ansicht, wie es im Programm erscheint liefert das Bild 2.jpg.
Im Programm erzeuge ich eine abgeleitete Klasse (GuiSourceForm) des Widgets (GuiSourceFormBase) und rufe Sie dann mit dem folgenden Code auf:
Das Widget ist also ein Popup!
Ich habe die LineEdits in ein Grid gepackt, die PushButtons horizontal ausgerichtet und dann das beides in ein vertikales Layout gepackt.
Ist das zu viel Verpackung?
Das Bild 1.jpg enthält die Designer Ansicht. Das Widget ist vom Typ QWidget.
Eine Ansicht, wie es im Programm erscheint liefert das Bild 2.jpg.
Im Programm erzeuge ich eine abgeleitete Klasse (GuiSourceForm) des Widgets (GuiSourceFormBase) und rufe Sie dann mit dem folgenden Code auf:
Code: Alles auswählen
_guisourceform = new GuiSourceForm( this , 0, WType_Popup ); Ich habe die LineEdits in ein Grid gepackt, die PushButtons horizontal ausgerichtet und dann das beides in ein vertikales Layout gepackt.
Ist das zu viel Verpackung?
- Dateianhänge
-
- So sieht es im Designer aus
- 1.jpg (60.48 KiB) 10453 mal betrachtet
-
- So sieht es im Programm aus (die Buttons werden verdeckt)
- 2.jpg (48.3 KiB) 10453 mal betrachtet
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Also ich habe jetzt kein Problem mehr mit den Min/Max Buttons.
Wenn ich mein Hauptfenster als QDialog Klasse belasse und dann mit den folgenden Paramtern aus meinem Hauptprogramm (main()) initialisiere, klappt alles wunderbar (Nur das Resize-Management läßt wie gesagt noch zu wünschen übrig):
Weil ich unter Windows arbeite, sagt mir die Dokumentaion, dass ich Qt::WStyle_MinMax mit Qt::WStyle_SysMenu kombinieren muss.
Jetzt zu den Layouts:
Im Designer gibt es meines Wissens keinen QVBoxLayout Knopf, nicht wahr? Meinst Du, dass ich einfach alles markiere und in dann unter dem Menu "Layout" "Layout Vertically" anklicke? Das gäbe dann nämlich "nur" ein QVBox Objekt. Meinst Du das so?
Wenn ich mein Hauptfenster als QDialog Klasse belasse und dann mit den folgenden Paramtern aus meinem Hauptprogramm (main()) initialisiere, klappt alles wunderbar (Nur das Resize-Management läßt wie gesagt noch zu wünschen übrig):
Code: Alles auswählen
GuiMainDialog *guiMain = new GuiMainDialog(0, "guiMain", FALSE, Qt::WStyle_MinMax | Qt::WStyle_SysMenu);Jetzt zu den Layouts:
Im Designer gibt es meines Wissens keinen QVBoxLayout Knopf, nicht wahr? Meinst Du, dass ich einfach alles markiere und in dann unter dem Menu "Layout" "Layout Vertically" anklicke? Das gäbe dann nämlich "nur" ein QVBox Objekt. Meinst Du das so?
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Ok, so funktioniert es zumindest, dass im Popup die Knöpfe nicht verdeckt werden.
Wie aber schaffe ich es, dass sich das Widget in der Höhe und Breite anpasst, wenn ich das Fenster manuell vergrößer/verkleinere (siehe Bild 1.jpg)?
Sorry, ich bin heute etwas schwer von Begriff.
Folgende Layouts sind verwendet worden (siehe Bild 2.jpg):
LineEdits : Grid
PushButtons: H-Layout
Text + LineEdits + PushButtons : V-Layout
Wie aber schaffe ich es, dass sich das Widget in der Höhe und Breite anpasst, wenn ich das Fenster manuell vergrößer/verkleinere (siehe Bild 1.jpg)?
Sorry, ich bin heute etwas schwer von Begriff.
Folgende Layouts sind verwendet worden (siehe Bild 2.jpg):
LineEdits : Grid
PushButtons: H-Layout
Text + LineEdits + PushButtons : V-Layout
- Dateianhänge
-
- Im Progamm vergrößern sich die Widgets nicht mit
- 1.jpg (48.23 KiB) 10442 mal betrachtet
-
- Ausführliche Qt-Designer-Ansicht
- 2.jpg (216.85 KiB) 10442 mal betrachtet
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten: