You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter中使用Grid方法对齐Radio Buttons单选按钮

问题根因

你当前对齐异常是布局行列参数配置错误导致的,核心问题有两个:

  1. 所有组件都放在了同一列(column=1),标签挤占了单选按钮的布局空间
  2. 两个单选按钮的起始行都设为了row=2,且设置了冲突的rowspan参数,导致两个单选按钮在同一单元格内重叠挤压,sticky参数自然无法生效

修正方案

按以下逻辑调整grid布局参数即可:

  • 拆分布局列:标签放在column=0,两个单选按钮放在column=1
  • 给单选按钮分配独立的行,去掉不必要的rowspan配置
  • 可选:给单选按钮所在列设置权重,保证sticky="W"左对齐逻辑稳定生效

修正后的参考代码:

# 以下常量PURPLE、FONT、BACKGROUND沿用你之前的定义即可
mode_of_transportation = Label(text="Mode of transportation: ", fg=PURPLE, font=(FONT, 30, "bold"),bg=BACKGROUND)
# 标签放在第0列第0行,跨2行适配高度
mode_of_transportation.grid(column=0,row=0, rowspan=2, sticky="W")

# 给单选按钮所在的第1列设置权重,预留足够布局空间
mode_of_transportation.master.grid_columnconfigure(1, weight=1)

r = IntVar()
express = Radiobutton(text="Express(Grab,Uber,Taxi)",variable=r, value=0,width=20, font=(FONT, 18 , 'bold'), fg=PURPLE,bg=BACKGROUND, highlightthickness=0, activebackground=BACKGROUND )
# 第一个单选按钮放在第1列第0行,左对齐
express.grid(column=1,row=0,sticky="W")

normal = Radiobutton(text="Normal(Jeep,Bus,UV,Tric)",variable=r, value=1,width=20, font=(FONT, 18 , 'bold'), fg=PURPLE,bg=BACKGROUND, highlightthickness=0, activebackground=BACKGROUND )
# 第二个单选按钮放在第1列第1行,左对齐
normal.grid(column=1,row=1, sticky="W")

内容的提问来源于stack exchange,提问作者Noahwaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:15:04