Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python网格列跨度_Python_Tkinter_Grid Layout - Fatal编程技术网

Python网格列跨度

Python网格列跨度,python,tkinter,grid-layout,Python,Tkinter,Grid Layout,我想使用grid columnspan用文本小部件填充hole列。这可能吗 import tkinter root = tkinter.Tk() text = tkinter.Text(root) text.insert('end','Text') text.grid(row=0,column=0)#columnspan=? root.mainloop() 当使用网格时,您需要告诉tkinter它应该如何分配额外的空间。网格将根据行和列的“权重”按比例分配行和列之间的任何额外空间。例如,权重为

我想使用grid columnspan用文本小部件填充hole列。这可能吗

import tkinter
root = tkinter.Tk()
text = tkinter.Text(root)
text.insert('end','Text')
text.grid(row=0,column=0)#columnspan=?
root.mainloop()

当使用
网格时
,您需要告诉tkinter它应该如何分配额外的空间。网格将根据行和列的“权重”按比例分配行和列之间的任何额外空间。例如,权重为3的列将获得比权重为1的列多3倍的额外空间。每行和每列的默认权重为零,这意味着不会给它任何额外的空间

根据经验,无论何时使用
网格
时,都应为至少一行和至少一列赋予非零权重,以便任何额外空间都不会被闲置

在您的例子中,小部件被放置在根窗口中,因此您需要配置根窗口中行和列的权重。由于您只使用一行和一列,因此可以这样做:

root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
这只是故事的一部分。这样,TKITER将为包含文本窗口小部件的行和列分配额外的空间,但是因为您没有告诉它,否则小部件将漂浮在该行和列的中间。

要解决这个问题,您需要将小部件的边缘“粘贴”到给定空间的边缘。您可以使用
sticky
属性来实现这一点。在您的具体情况下,您可以这样做:

text.grid(row=0,column=0, sticky="nsew")
sticky
的值是字母“n”(北)、“s”(南)、“e”(东)和“w”(西)或任意组合

请注意,如果您只想在窗口或框架中放置一个小部件,那么只需一行代码即可获得相同的效果:

text.pack(fill="both", expand=True)

你问的不清楚。您只有一列,还需要跨哪些列?您是否在询问如何使文本小部件在调整大小时展开以填充整个窗口?抱歉,没有具体说明,是的,我想用文本填充整个窗口!非常感谢。