如何更改默认锚点、relx 和 rely 来放置 tkinter 小部件?
How can you change the default anchor, relx and rely for placing tkinter widgets?
我程序中的很多小部件都是这样放置的:
widget.place(relx=0.5, rely=0.5, anchor=CENTER)
所以,我想将其设为默认设置。我试过:
root.option_add("*anchor", "center")#Putting CENTER returns an error
root.option_add("*relx", "0.5")
root.option_add("*rely", "0")
但是,这不起作用。
我怎样才能做到这一点?
你不能。选项数据库用于指定小部件属性,而不是函数的参数。没有用于指定 pack
、place
、grid
或任何其他 tkinter 函数的参数的内置机制。
您不能在不重写该方法的情况下更改默认选项,但一个可行的解决方法是简单地为该 customization
定义一个变量并将其传递给使用它的小部件:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
if __name__ == '__main__':
root = tk.Tk()
customization = dict(relx=0.5, rely=0.5, anchor='center')
my_list_of_widgets = list()
for i in range(30):
my_list_of_widgets.append(tk.Label(root, text=i))
my_list_of_widgets[i].place(**customization)
tk.mainloop()
我程序中的很多小部件都是这样放置的:
widget.place(relx=0.5, rely=0.5, anchor=CENTER)
所以,我想将其设为默认设置。我试过:
root.option_add("*anchor", "center")#Putting CENTER returns an error
root.option_add("*relx", "0.5")
root.option_add("*rely", "0")
但是,这不起作用。
我怎样才能做到这一点?
你不能。选项数据库用于指定小部件属性,而不是函数的参数。没有用于指定 pack
、place
、grid
或任何其他 tkinter 函数的参数的内置机制。
您不能在不重写该方法的情况下更改默认选项,但一个可行的解决方法是简单地为该 customization
定义一个变量并将其传递给使用它的小部件:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
if __name__ == '__main__':
root = tk.Tk()
customization = dict(relx=0.5, rely=0.5, anchor='center')
my_list_of_widgets = list()
for i in range(30):
my_list_of_widgets.append(tk.Label(root, text=i))
my_list_of_widgets[i].place(**customization)
tk.mainloop()