Paned Window. Wie soll ich es vernünftig einsetzen?

Fragen zu Tkinter.
Antworten
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

Ich habe gerade mein Abenteuer mit GUI Builder (ActivState) begonnen.
Wie kann ich vernünftig das PaneWindow benutzen.
Im Augenblick konnte ich kein Unteschied merken. Egall ob ich es zwischen den z.B. Listboxen plaziere oder nicht passiert nichts.
Eigentlich habe ich erwartet, dass ich die Listboxen mit dem PaneWindow "schieben" kann (eine Listbox wird z.B. breiter und die andere schmaller).
Gibt es vielleicht im Netz einen Tutorial mit diesem Thema?
MfG
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

erka hat geschrieben:Gibt es vielleicht im Netz einen Tutorial mit diesem Thema?
http://effbot.org/tkinterbook/panedwindow.htm
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Frei nach dem Beispiel im Effbot und ganz ohne Gui-Builder:

Code: Alles auswählen

import Tkinter as tk

def make_listbox(parent, n=9):

  lb = tk.Listbox(parent)
  for i in xrange(n):
    lb.insert(tk.END, i)

  return lb


root = tk.Tk()
pane = tk.PanedWindow(root)
pane.pack(fill=tk.BOTH, expand=1)
pane.add(make_listbox(pane))

pane_right = tk.PanedWindow(pane, orient=tk.VERTICAL)
pane.add(pane_right)

for _ in xrange(3):
  pane_right.add(make_listbox(pane_right))

root.mainloop()
:wink:
yipyip
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

Danke.
So funktioniert es tatsächlich, sehr gut.
Aber wieso kann ich den PanedWindow widget nicht so einfach im GUI Builder benutzen?
Ich habe meine kleine Applikation mittels diesen GUI Builder gemacht. Hat auch gut geklappt, bis ich die Idee hatte, meine Listboxen ein wenig flexibler zu gestallten. Das PanedWindow steht zwar zur Verfügung, aber...ich kann es nicht richtig einbinden. :cry:
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Mein Rat: Vergiss, dass es sowas wie Gui-Builder gibt. Gerade Tkinter flutscht doch wie nur was, da ist ein Gui-Builder nur hinderlich.

:wink:
yipyip
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

yipyip hat geschrieben:Mein Rat: Vergiss, dass es sowas wie Gui-Builder gibt.
Funktionierende GUI-Builder sind durchaus sinnvoll. Ich denke ein Großteil aller Qt-Apps nutzt Qt Designer. Der nötige GUI-Code ist auch nicht schwerer, aber lästig wenn man viele Sachen umherschieben will, daher nimmt man da gerne einen GUI-Builder.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Also ich komme mit dem Gui-Builder Prinzip ueberhaupt nicht zurecht. Nach mehreren Anlaeufen habe ich es jetzt endlich geschafft, mit dem Qt-Designer ein Fenster mit einem Button zu erstellen, mit pyuic4 das entsprechende Python-Modul zu generieren und mit Hilfe der Anleitung aus http://www.rkblog.rk.edu.pl/w/p/simple- ... tor-pyqt4/ ein Programm zu erzeugen, das auf auf Button-Click eine print-Ausgabe liefert.

(Aber vielleicht bin ich einfach nur zu dumm fuer sowas...)
:wink:
yipyip
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Also ich habe mit GLADE3 und ohne Generieren (das ist ja auch für Python eher wenig sinnvoll) eigentlich keine Probleme...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

@Leonidas: Stimmt, man muss keinen Python Code generieren (bei PyQt4 reicht uic.LoadUi() ).
Wenn man von Tkinter verwoehnt ist ( :wink: ), ist das alles etwas gewoehnungsbeduerftig.

:wink:
yipyip
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

Leonidas hat geschrieben:Also ich habe mit GLADE3 und ohne Generieren (das ist ja auch für Python eher wenig sinnvoll) eigentlich keine Probleme...
Leider, stelle ich fest, dass ich nicht verstehe wovon Ihr spricht :oops: .
Ohne Generieren? Ich habe zwar mit GLADE noch nicht richtig gearbeitet (runtergeladen hab ich schon), aber ich dachte mir, dass die Generierung des Codes ist eigentlich das, was mann von diesen "Helfer" erwartet.
Aber wenn mann die Anzahl meiner Einträge im Forum sieht, dann ist klar mit wem mann zu tun hat :lol:
Wie Leonidas schrieb, für schnelle Korrekturen, Verschiebungen u.s.w ist der GUI Builder nicht schlecht.
Im Moment interesiert mich eigentlich, ob alle Optionen, die er hat richtig funktionieren, besonders PanedWindow. Ob der Code optimal ist für mich noch zweitrangig.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

erka hat geschrieben:aber ich dachte mir, dass die Generierung des Codes ist eigentlich das, was mann von diesen "Helfer" erwartet.
Nein, sowohl GLADE (GTK+) als auch Qt Designer (Qt) als auch XRCed (wxWidgets) speichern die designten Oberflaechen in XML-Dateien die man sowohl im GUI-Builder direkt editieren kann als auch direkt in Python-Code verwenden kann, ueber die entsprechenden Hilfsfunktionen des Toolkits. Viel praktischer und direkter als das Generieren von (suboptimalen) Code.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten