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

问题描述 投票:6回答:2

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

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

python user-interface tkinter tk
2个回答
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是自然选择。


2
投票

如果您浏览Tkinter.py,您会发现rowconfigure只是对grid_rowconfigure的引用。

© www.soinside.com 2019 - 2024. All rights reserved.