[Tkinter-discuss] grid manager does propagate width - why?

Martin B. spooky.ln at tbs-software.com
Tue Jan 18 11:46:03 CET 2011


V Tue, 18 Jan 2011 11:23:30 +0100
Helmut Jarausch <jarausch at igpm.rwth-aachen.de> napsáno:

hi, 
i make little rewrite your LabEntry.
seems to work

<code>

import tkinter as Tk

class LabEntry(Tk.Frame) :
  def __init__(self,root,label,**args) :
    super().__init__()
    
    entry = Tk.Entry(self, **args)
    entry.grid(column=1, row=0)
    Lab=Tk.Label(self,text=label)
    Lab.grid(column=0,row=0)

def Finish() :
  root.destroy()

root= Tk.Tk()
root.protocol('WM_DELETE_WINDOW',Finish)
Name= Tk.StringVar()
Name.set('')
NameE= LabEntry(root,'Name :',textvariable=Name,width=25)
NameE.grid(column=0,row=0)
Tk.mainloop()

</code>

> Hi,
> 
> I have two version of a simple labeled entry widget.
> 
> import Tkinter as Tk
> 
> class LabEntry(Tk.Entry) :
>   def __init__(self,root,label,**args) :
>     self.Frame= Tk.Frame(root)
>     Lab=Tk.Label(self.Frame,text=label)
>     Lab.grid(column=0,row=0)
>     Tk.Entry.__init__(self,self.Frame,**args)
>     self.grid(column=1,row=0)
>   
>   def grid(self,**args) :
>     self.Frame.grid(**args)
> 
> def Finish() :
>   root.destroy()
> 
> root= Tk.Tk()
> root.protocol('WM_DELETE_WINDOW',Finish)
> Name= Tk.StringVar()
> Name.set('')
> NameF= Tk.Frame(root)
> NameF.grid(column=0,row=0)
> Tk.Label(NameF,text='Name :').grid(column=0,row=0)
> NameE= Tk.Entry(NameF,textvariable=Name,width=25)
> NameE.grid(column=1,row=0)
> Tk.mainloop()
> 
> -------------------------------------------------
> 
> This version, which doesn't use LabEntry, reserves space for 25 
> characters in the entry widget.
> 
> But, replacing the last 6 lines by
> 
> NameE= LabEntry(root,'Name :',textvariable=Name,width=25)
> NameE.grid(column=0,row=0)
> Tk.mainloop()
> 
> the (internal) entry widget has only size 0 initially.
> Why?
> 
> Many thanks for a hint,
> Helmut.
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> http://mail.python.org/mailman/listinfo/tkinter-discuss
> 



More information about the Tkinter-discuss mailing list