我知道您可以使用Pack Geometry Manager轻松创建覆盖100%宽度的Tkinter Text小部件:
from tkinter import *
root = Tk()
textWidget = Text(root)
textWidget.pack(side=TOP, fill=X)
root.geometry('600x1000')
root.mainloop()
但我想知道,如何使用grid Geometry Manager和grid_columnconfigure完成同样的任务?
答案 0 :(得分:5)
使用网格需要以下步骤:
grid
方法,为其提供行和列。在这种情况下
你可以使用0,0。 grid
方法,定义您是否希望窗口小部件“粘贴”
它所给予的空间的两侧。在你的情况下,你可以给予
字符串“nsew”(北,南,东,西)。 grid_rowconfigure
。这将导致行垂直扩展以填充任何额外空间grid_columnconfigure
。这将导致列水平扩展以填充
任何额外的空间。请注意grid_rowconfigure
和grid_columnconfigure
是要调用的方法
包含文本小部件的小部件,而不是文本小部件本身。 grid
方法是
调用文本小部件,因为您正在告诉文本小部件它应该放在哪里
本身就是它的父母。
您的代码如下所示:
from tkinter import *
root = Tk()
textWidget = Text(root)
textWidget.grid(row=0, column=0, sticky="nsew")
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.geometry('600x1000')
root.mainloop()
当你有一个小部件来填充分配给它的所有空间时,我推荐pack
只是因为你可以用一行代码而不是三行来完成所有工作。 pack
非常适合此类问题。 grid
更适合创建小部件网格,因为它的名称适用。话虽这么说,要么完全可以接受。您可以在同一程序中混合使用grid
和pack
,但不能将它们用于共享父项的小部件。