什么是正确的:widget.rowconfigure或widget.grid_rowconfigure?

Tre*_*ith 6 python user-interface tk-toolkit tkinter

使用网格几何管理器时.假设你有:

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()
Run Code Online (Sandbox Code Playgroud)

您指定行/列权重的部分也可以编码为:

root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
Run Code Online (Sandbox Code Playgroud)

对于此示例,什么是正确的方法:widget.rowconfigure或widget.grid_rowconfigure?为什么?

奖励:从实施POV,为什么两者都有效?

Bry*_*ley 7

widget.rowconfigure字面上只是一个别名widget.grid_rowconfigure.在tkinter的源代码中是这行代码:

rowconfigure = grid_rowconfigure
Run Code Online (Sandbox Code Playgroud)

我不知道一个事实,但我怀疑这widget.rowconfigure是为了方便而添加的.坦率地说,直到我读到这个问题,我才知道它存在.

在我看来,grid_rowconfigure是使用正确的名称.我这样说是因为tkinter是底层tcl/tk解释器的接口,而在tcl/tk中命令是grid rowconfigure.由于大多数tkinter函数尽可能接近tcl/tk函数的命名约定,因此grid_rowconfigure是自然的选择.