如何在Tkinter网格布局中单独放大指定单元格?
可行,调整网格布局参数就能实现目标样式,修改后的代码如下:
import random from tkinter import * root = Tk() root.title("TOMBOLA") root.resizable(0, 0) root.config(bg="WHITE") # 第一行:标签、输入框、OK按钮 texto = Label(root, text="Introduce el nombre para agregar a la tómbola:", font=("Courier")) texto.grid(column=0, row=0, padx=(10,0), sticky=W) # 左对齐标签 entry = Entry(root, width=40) entry.focus_set() # 让输入框占据列1和列2,填充中间宽度 entry.grid(column=1, row=0, columnspan=2, padx=25, sticky=EW) boton_ok = Button(root, text="OK", width=10, height=2) boton_ok.grid(row=0, column=3, padx=10, pady=(25,0)) # 第二行:横跨整行的INICIAR按钮 boton_sig = Button(root, text="INICIAR TOMBOLA") # 按钮横跨4列(0-3),并横向拉伸填满空间 boton_sig.grid(column=0, row=1, columnspan=4, pady=(15,15), sticky=EW, padx=10) # 第三行:Lista标签和显示区域 listaindic = Label(root, text="Lista: ") listaindic.grid(row=2, column=0, padx=(10,0), sticky=W) display = Label(root, text="", bg="#f0f0f0", relief=SUNKEN, width=50) # 显示区域占据列1到列3,拉伸填充剩余空间 display.grid(row=2, column=1, columnspan=3, padx=10, pady=(0,15), sticky=EW) # 配置列权重,让可拉伸元素合理分配空间 for col in range(4): root.grid_columnconfigure(col, weight=1) root.mainloop()
修改说明:
- 给输入框设置
columnspan=2,让它占据更多列宽,贴合目标布局 - 把"INICIAR TOMBOLA"按钮的
columnspan=4,配合sticky=EW实现横向铺满整行 - 将Lista标签和显示区域下移到第三行,显示区域设置
columnspan=3确保足够宽度 - 用
grid_columnconfigure配置列权重,让元素在网格内均匀分布 - 调整
sticky属性统一元素对齐方式,匹配目标样式的排版逻辑
内容的提问来源于stack exchange,提问作者Fire Frekox
相关产品推荐
相关产品推荐

