Tkinter spacing
Peter Otten
__peter__ at web.de
Tue Jan 26 03:07:59 EST 2016
KP wrote:
> If I want to have some space between, say, btn_last & btn_new, will I have
> to use a dummy label in between these two or is there a better way?
>
> Thanks for any help, as always!
You could use nested frames with nonzero padding, e. g:
nav_bar = ttk.Frame(root, borderwidth=2, relief='ridge', padding=(0, 3))
nav_bar1 = ttk.Frame(nav_bar, padding=(5, 0))
nav_bar1.pack(side=LEFT)
btn_first = ttk.Button(nav_bar1, text='|<', width=4)
btn_first.grid(column=0, row=0)
...
nav_bar2 = ttk.Frame(nav_bar, padding=(5, 0))
nav_bar2.pack(side=LEFT)
btn_new = ttk.Button(nav_bar2, text='New')
btn_new.grid(column=0, row=0)
...
> from tkinter import *
> from tkinter import ttk
>
> root = Tk()
> root.geometry("822x600+100+100")
> nav_bar = ttk.Frame(root, borderwidth=2, relief='ridge', padding=(10, 3,
> 10, 3))
>
> btn_first = ttk.Button(nav_bar, text='|<', width=4) # for buttons
> showing text only, this will be text units (= average characters?)
> btn_prev = ttk.Button(nav_bar, text='<', width=4) # for image buttons,
> it will be in pixels
> btn_next = ttk.Button(nav_bar, text='>', width=4)
> btn_last = ttk.Button(nav_bar, text='>|', width=4)
> btn_new = ttk.Button(nav_bar, text='New')
> btn_edit = ttk.Button(nav_bar, text='Edit')
> btn_delete = ttk.Button(nav_bar, text='Delete')
> btn_cancel = ttk.Button(nav_bar, text='Cancel')
> btn_print = ttk.Button(nav_bar, text='Print')
> btn_help = ttk.Button(nav_bar, text='Help')
> btn_save = ttk.Button(nav_bar, text='Save')
> lbl_Recs = ttk.Label(nav_bar, text='Records')
> lbl_RCount = ttk.Label(nav_bar, text='0 ', width=10, borderwidth=2,
> relief='sunken', anchor='e') # fake entry look
>
> nav_bar.grid(column=0, row=0, columnspan=13)
>
> btn_first.grid(column=0, row=0)
> btn_prev.grid(column=1, row=0)
> btn_next.grid(column=2, row=0)
> btn_last.grid(column=3, row=0)
>
> btn_new.grid(column=4, row=0)
> btn_edit.grid(column=5, row=0)
> btn_delete.grid(column=6, row=0)
> btn_cancel.grid(column=7, row=0)
>
> lbl_Recs.grid(column=8, row=0, padx=5)
> lbl_RCount.grid(column=9, row=0, padx=5)
> btn_print.grid(column=10, row=0)
> btn_help.grid(column=11, row=0)
> btn_save.grid(column=12, row=0)
>
> root.mainloop()
More information about the Python-list
mailing list