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

时间:2013-08-16 19:34:18

标签: python user-interface tkinter tk

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

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,为什么两者都有效?

2 个答案:

答案 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的引用。