Hallo miteinander
Wie der Titel schon andeutet, bin ich noch ein ziemlicher Anfänger in Sachen pygtk. Ich habe versucht ein einfaches GUI zu programmieren, bin aber schon an den grundlegenden dingen gescheitert. Das Einzige, was mir gelungen ist, ist ein einfaches Fenster zu erstellen.
Was ich nun machen möchte ist, erst einmal das Fenster in Bereiche aufzuteilen ( Soweit ich das verstanden hab, sollte das irgendwie mit gtk.Box gehen )
Es sollte dann etwa so aufgeteilt sein:
Oben kommt eine Menüleiste hin, links unten ein Ausgabefenster und rechts davon ein Bereich für Einstellungen.
Was ihr mir jetzt erklären könntet wäre:
- Wie genau teile ich das Fenster so auf
- Wie erstelle ich ein Menü
- Gibt es eine einfache Methode, Buttons in einem Bereich anzuordnen
Es würde mich freuen, wenn ihr alle Zusammenhänge zwischen den einzelnen Befehlen erklärt, damit ich auch das System dahinter verstehe.
Grundlegendes zu Menu, Box und Button
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Aus dem Kopf, da ich es nicht mehr so genau weiß (kannst du aber recht einfach im Tutorial finden):
Du erstellst eine gtk.MenuBar, diese fügst du deinem gtk.WindowWidget hinzu. Dann erstellst du darin eine gtk.HBox und fügst auch diese dem gtk.Window hinzu. Eine anderen Widgets baust du dann in diese gtk.HBox ein.
Du erstellst eine gtk.MenuBar, diese fügst du deinem gtk.WindowWidget hinzu. Dann erstellst du darin eine gtk.HBox und fügst auch diese dem gtk.Window hinzu. Eine anderen Widgets baust du dann in diese gtk.HBox ein.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ein bisschen weiter bin ich jetzt gekommen:
Das Menü funktioniert, wie ich mir es vorgestellt hatte. Nur ist es immer noch über die ganze Höhe des Fensters ausgebreitet.
Die Verwendung der box funktion musst du mir wohl noch etwas genauer erklären...
Das Menü funktioniert, wie ich mir es vorgestellt hatte. Nur ist es immer noch über die ganze Höhe des Fensters ausgebreitet.
Die Verwendung der box funktion musst du mir wohl noch etwas genauer erklären...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das ist eigentlich ganz einfach, lies dir das Kapitel 4 in dem Tutorial durch, dort steht was es für Layout Manager gibt und wie man sie benutzt. Gut möglich, dass du das Menü in eine VBox ganz oben reinpacken musst, damit es nicht das ganze Fenster einnimmt und die restlichen Boxen und Widgets weiter unten in die VBox packst. Ich habe das nicht mehr genau im Kopf.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das klappt schonmal nicht, weil ein gtk.Window nur _ein_ Child-Widget haben kann.Du erstellst eine gtk.MenuBar, diese fügst du deinem gtk.WindowWidget hinzu. Dann erstellst du darin eine gtk.HBox und fügst auch diese dem gtk.Window hinzu.
Ich würde sagen du machst das so:
Du erstellst ein gtk.Window und packst da eine VBox rein. In die VBox packst du dann die Menubar, aber du musst angeben, dass sie sich nicht ausdehnen soll. Das geht so (achtung aus dem Kopf raus ):
Code: Alles auswählen
vbox.pack_start(menubar, False, False, 0)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Oder ein gtk.Table verwendest, was ich als sehr bequem und einfach zu benutzen empfinde, wenn man erstmal die Funktionsweise verstanden hat.Vortex hat geschrieben:Bei gtk erzeugst du "Layouts" einfach indem du H- und VBoxen ineinander verschachtelst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Danke vielmals!
Das Boxensystem habe ich jetzt glaube ich verstanden und mein Menü sieht auch so aus, wie ich es mir vorgestellt habe.
Da das nun geschafft wäre, stehe ich vor dem nächsten Problem:
Ich möchte in einem Bereich von diesem Fenster etwas zeichnen. Sollte, so weit ich das verstanden habe, mit Drawable oder mit Tkinter -> Canvas gehen. Nur, in den Beispielen wird immer ein neues Fenster erstellt, in dem dann gezeichnet wird. Ist es denn auch möglich so einen Zeichen-Bereich in einem bestehenden Fenster einzurichten?
Das Boxensystem habe ich jetzt glaube ich verstanden und mein Menü sieht auch so aus, wie ich es mir vorgestellt habe.
Da das nun geschafft wäre, stehe ich vor dem nächsten Problem:
Ich möchte in einem Bereich von diesem Fenster etwas zeichnen. Sollte, so weit ich das verstanden habe, mit Drawable oder mit Tkinter -> Canvas gehen. Nur, in den Beispielen wird immer ein neues Fenster erstellt, in dem dann gezeichnet wird. Ist es denn auch möglich so einen Zeichen-Bereich in einem bestehenden Fenster einzurichten?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Bitte nur eine Frage pro Thread, vor allem da diese mit der Vorherigen nichts zu tun hat.kable hat geschrieben:Da das nun geschafft wäre, stehe ich vor dem nächsten Problem:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice