簡體   English   中英

如何保持小部件在Tkinter中居中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM