[Tkinter-discuss] PanedWindow placement of sash
Michael Lange
klappnase at web.de
Thu Sep 19 09:51:30 CEST 2013
Hi,
On Thu, 19 Sep 2013 07:15:30 +0000
Vasilis Vlachoudis <Vasilis.Vlachoudis at cern.ch> wrote:
> Hi all,
>
> I am trying to save on exit and restore on startup the placement of the
> sash in the PanedWindow, with a code like this
>
> from Tkinter import *
>
> tk = Tk()
> p = PanedWindow(tk, orient=HORIZONTAL, width=600)
> p.pack(expand=YES,fill=BOTH)
> f1 = Label(p, text="First", bg="Red")
> p.add(f1)
> f2 = Label(p, text="Second", bg="Green")
> p.add(f2)
> p.sash_place(0, 450, 0) # <-----------------------
> tk.mainloop()
>
> The sash_place command is ignored. I believe because the window is not
> created yet and the dimensions are zero. So if I place an
> p.update_idletasks() before the sash_place, it works.
>
> Is there a more CLEAN to achieve the task.
>
> Is it recommended to use the update_idletasks before the mainloop?
I think putting an update_idletasks() before the sash_place() is a
perfectly "clean" way to handle issues like this.
Personally I use this technique rather often, especially in cases when
the geometry of a more complex gui layout causes ugly "flickering"
effects when the window is created, update_idletasks() can work
miracles :)
And your example seems like a perfect indication for update_idletasks()
either.
Best regards
Michael
.-.. .. ...- . .-.. --- -. --. .- -. -.. .--. .-. --- ... .--. . .-.
All your people must learn before you can reach for the stars.
-- Kirk, "The Gamesters of Triskelion", stardate 3259.2
More information about the Tkinter-discuss
mailing list