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

如何在PySimpleGUI中实现两列并排的10×10按钮网格?

解决PySimpleGUI中并排显示两个10×10按钮网格的问题

你遇到的错误是因为直接将网格的列表嵌套结构作为布局元素使用,PySimpleGUI的布局要求每行的元素必须是GUI组件(比如Button、Column等),而不是列表的列表。要实现两个网格并排,需要用sg.Column组件将每个完整的网格包裹起来,再把两个Column放在同一行布局中。

修改后的完整代码

import PySimpleGUI as sg

sg.theme('Dark Blue 3')
MAX_ROWS = MAX_COL = 10

# 封装生成网格的函数,通过key前缀区分两个网格
def create_grid(grid_prefix):
    return [
        [sg.Button(
            'O', size=(4, 2), pad=(0, 0), border_width=0,
            key=(grid_prefix, row, col)
        ) for col in range(MAX_COL)]
        for row in range(MAX_ROWS)
    ]

# 生成两个网格的Column组件
grid1_col = sg.Column(create_grid('grid1'), pad=(10, 0))
grid2_col = sg.Column(create_grid('grid2'), pad=(10, 0))

# 主布局:顶部标题+消息栏,中间两个并排网格,底部退出按钮
layout = [
    [sg.Text('双网格菜单', font='Default 25')],
    [sg.Text(size=(30, 1), key='-MESSAGE-', font='Default 20')],
    [grid1_col, grid2_col],  # 两个网格Column并排
    [sg.Button('Exit', button_color=('white', 'red'))]
]

window = sg.Window('双网格演示', layout)

# 模拟命中位置(示例数据,可根据实际需求修改)
position = {('grid1', 2, 3), ('grid1', 5, 5), ('grid2', 1, 1)}

while True:
    event, values = window.read()
    print(event, values)
    
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    
    # 判断是否是网格按钮事件
    if isinstance(event, tuple) and len(event) == 3:
        grid_prefix, row, col = event
        if event in position:
            window[event].update('H', button_color=('white', 'red'))
            window['-MESSAGE-'].update(f'网格{grid_prefix[-1]}命中: ({row}, {col})')
        else:
            window[event].update('M', button_color=('white', 'black'))
            window['-MESSAGE-'].update(f'网格{grid_prefix[-1]}未命中: ({row}, {col})')

window.close()

关键修改说明

  • 用sg.Column包裹网格:每个完整的10×10按钮列表被包裹在sg.Column中,将嵌套的列表结构转化为单个GUI元素,满足布局要求。
  • 区分网格按钮的Key:给每个网格的按钮Key加上前缀(grid1/grid2),这样在事件处理时能准确区分是哪个网格的按钮被点击。
  • 重构布局结构:将两个Column放在同一行布局中,实现并排显示;同时调整消息栏的宽度,适配双网格的显示。
  • 完善事件处理:通过判断事件的元组结构,识别网格按钮事件,并根据前缀区分不同网格的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:05:19