[英]How To Keep The Widget's Centered In Tkinter?
當我更改OptionMenu時,它都向左移動,並且我希望所有內容都居中嗎?
每當我更改小部件w2時,它都會更改。
碼:
from Tkinter import *
root=Tk()
root.geometry("540x250+400+250")
root.title('Converter')
root.resizable(0, 0)
variable = StringVar(root)
variable.set(" Select A Measurement ") # default value
variable2 = StringVar(root)
variable2.set("Select A Second Measurement") # default value
l=Label(root,text='To')
l.grid(row=1, column=1, sticky='NW')
w = OptionMenu(root, variable, "CM", "MM", "M", "Inches")
w.grid(row=1, column=0, sticky='NE')
w2 = OptionMenu(root, variable2, "Inches", "MM", "M", "CM")
w2.grid(row=1, column=2, sticky='NW')
#spacers
w = Label(root,text=' ')
w.grid(row=3, column=1, sticky='NW')
#spacers
w = Label(root,text=' ')
w.grid(row=2, column=1, sticky='NW')
b = Button(root, text=" Convert ",font=(None,15))
b.grid(row=4, column=1, sticky='NW')
mainloop()
問題是網格很靈活,如果我們不希望它們移動,則需要使用.grid_columnconfigure(1, weight=100,minsize=150)
minsize
來停止閃爍
從文檔中明確指出:
“ columnconfigure”和“ rowconfigure”都采用了“ minsize”網格選項,該選項指定了您不希望列或行縮小的最小大小。
from Tkinter import *
root=Tk()
root.geometry("540x250+400+250")
root.title('Converter')
root.resizable(0, 0)
frame = Frame(root)
frame.grid(row=0, column=0, sticky='NSEW')
frame.grid_columnconfigure(0,minsize=180 )
frame.grid_columnconfigure(1, weight=100,minsize=150)
frame.grid_columnconfigure(2, weight=100,minsize=150)
frame.grid_columnconfigure(3, weight=100,minsize=150)
variable = StringVar(root)
variable.set(" Select A Measurement ") # default value
variable2 = StringVar(root)
variable2.set("Select A Second Measurement") # default value
l=Label(frame,text='To')
l.grid(row=1, column=1, sticky='NW',)
w = OptionMenu(frame, variable, "CM", "MM", "M", "Inches")
w.grid(row=1, column=0, sticky='NE')
w2 = OptionMenu(frame, variable2, "Inches", "MM", "M", "CM")
w2.grid(row=1, column=2, sticky='NW')
#spacers
w = Label(frame,text=' ')
w.grid(row=3, column=1, sticky='NW')
#spacers
w = Label(frame,text=' ')
w.grid(row=2, column=1, sticky='NW')
b = Button(frame, text=" Convert ",font=(None,15))
b.grid(row=4, column=1, sticky='NW')
mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.