首页 > 解决方案 > 面对 Tkinter 中的列跨度问题

问题描述

import tkinter as tk
submit_btn=tk.Button(root,text='click me')
submit_btn.grid(row=4,column=0,columnspan=2,pady=10,padx=10,ipadx=100)

我是 TKINTER 的初学者。即使我将 columnspan=2 按钮保持在相同的大小,我已经在第 0、1、2、3 行中放置了一些条目和标签元素,并且它们的 column=1 和 0
请帮助我为什么按钮大小不是不改变?

标签: pythontkinter

解决方案


Columnspan 只处理按钮的位置,而不是按钮的实际大小。为确保按钮重新缩放到分配的全部列,请添加sticky='ew'到 的参数.grid。如果为这些方向配置,sticky 参数会强制按钮粘在其指定的列和行的两侧。要指定它应该坚持的方向,将它们放在放置位置的字符串示例中:

sticky='here'

它接受的方向是:“s”代表南/下/下,“w”代表西/左,“n”代表北/上/上,“e”代表东/右。所以如果你想让它贴在右边你会使用sticky='we',如果你想让它贴在顶部和底部你会使用sticky='sn',如果你想让它贴在所有边上你会使用sticky='swen'。粘性参数不关心您给出的方向或方向组合。

您的代码示例:

submit_btn.grid(row=4,column=0,columnspan=2,pady=10,padx=10,ipadx=100,sticky='ew')

推荐阅读