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

如何在PySimpleGUI中设置列最大项数并适配窗口标题

PySimpleGUI复选框布局与窗口标题适配问题解决

原代码基础上的修改方案

1. 实现每行固定数量的复选框

要让长列表的复选框每行显示4或5个,只需将颜色列表按指定数量分组,生成多行布局即可。以下是修改后的完整代码:

import PySimpleGUI as sg

color_list = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'black', 'white', 'gray', 'pink', 'brown', 'cyan']

group_size = 4  # 每行显示4个复选框,可自行修改为5
# 将颜色列表按group_size分组,生成多行复选框布局
checkbox_rows = [[sg.Checkbox(item, key=item) for item in color_list[i:i+group_size]] for i in range(0, len(color_list), group_size)]

layout = [
    [sg.Column(checkbox_rows, justification='left')],
    [sg.Button('Submit')]
]

window = sg.Window('Select Colors You Like', layout)

while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, 'Cancel'):
        break
        
    if event == 'Submit':
        selected_colors = [item for item in color_list if values[item]]
        break

print(selected_colors)
window.close()

核心逻辑是用切片color_list[i:i+group_size]将列表拆分成每group_size个元素一组,每组对应一行复选框,最终把这些行放入Column组件中。

2. 修复窗口标题显示不全问题

有三种简单方案可以解决标题截断问题:

  • 允许窗口手动调整大小:添加resizable=True参数,用户可自行拉伸窗口显示完整标题
  • 让窗口自动适配内容:添加auto_size_window=True参数,窗口会根据元素和标题自动调整初始大小
  • 手动设置最小宽度:指定minimum_size参数,确保窗口初始宽度足够显示标题

对应代码示例:

# 方式一:允许手动调整窗口大小
window = sg.Window('Select Colors You Like', layout, resizable=True)

# 方式二:自动适配内容
window = sg.Window('Select Colors You Like', layout, auto_size_window=True)

# 方式三:设置最小宽度(数值可根据标题长度调整)
window = sg.Window('Select Colors You Like', layout, minimum_size=(300, None))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:06:50