使用网格几何管理器时。假设你有:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
ttk.Button(root, text="Hello World").grid(sticky=tk.NSEW)
root.mainloop()
指定行/列权重的部分也可以编码为:
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
对于这个例子,什么是正确的方法:widget.rowconfigure或widget.grid_rowconfigure?为什么?
奖励:从实施POV,为什么两者都有效?
答案 0 :(得分:7)
widget.rowconfigure
实际上只是widget.grid_rowconfigure
的别名。在tkinter的源代码中是这行代码:
rowconfigure = grid_rowconfigure
我不知道一个事实,但我怀疑widget.rowconfigure
是为了方便起见而添加的。坦率地说,直到我读到这个问题,我才知道它存在。
在我看来,grid_rowconfigure
是正确的名称。我这样说是因为tkinter是底层tcl / tk解释器的接口,而在tcl / tk中命令是grid rowconfigure
。由于大多数tkinter函数尽可能接近tcl / tk函数的命名约定,因此grid_rowconfigure
是自然的选择。
答案 1 :(得分:2)
如果您浏览Tkinter.py,您会发现rowconfigure只是对grid_rowconfigure的引用。