我是Python的新手,并且正在尝试使用Python开发GUI来帮助自动化我的一些工作。我看过这个论坛和其他人的一些旧帖子,但找不到我的错误。
我正在尝试使用.grid()
方法使标签文本居中,两者都在弹出的窗口中,但如果用户调整大小,也会保持居中。我在网上找到的主要建议是使用.grid_rowconfigure()
方法并给相关行赋予非0权重,但这似乎不起作用。
我已经创建了一个备用测试代码,它具有相同的问题,以避免发布代码墙:
import tkinter as tk
class TestApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
label = tk.Label(self, text="TEST")
label.grid(row=0, sticky="nsew")
label.grid_rowconfigure(0, weight=1)
TestApp().mainloop()
提前感谢您的帮助!
答案 0 :(得分:2)
在标签上调用grid_rowconfigure()
只会影响标签中包含的小部件。要影响标签本身,您必须在其父级(测试代码中为self
)上调用此方法。
固定代码:
import tkinter as tk
class TestApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
label = tk.Label(self, text="TEST")
label.grid(row=0, sticky="nsew")
self.grid_rowconfigure(0, weight=1)
TestApp().mainloop()
答案 1 :(得分:1)
您不需要为相关行提供非零权重,您可以为其他行提供非零权重:
label = tk.Label(self, text="TEST")
label.grid(row=1, column=1)
self.grid_rowconfigure(0, weight=1)
self.grid_rowconfigure(2, weight=1)
self.grid_columnconfigure(0, weight=1)
self.grid_columnconfigure(2, weight=1)