10

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

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

4

2 回答 2

10

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是自然的选择。

于 2013-08-16T21:43:20.840 回答
3

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

于 2013-08-17T14:00:43.940 回答