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

PySimpleGUI 如何实现指定结构的Frame嵌套布局?

目标布局示例

PySimpleGUI嵌套布局实现说明

PySimpleGUI完全支持该嵌套布局需求,它的布局采用嵌套列表设计,可支持任意层级的容器嵌套排列。

实现逻辑

  • 左侧区域用sg.Column容器承载,内部垂直排列Frame 1和Frame 3
  • 右侧单独放置Frame 2
  • 将左侧Column容器和右侧Frame 2放在布局的同一行,即可实现左右分栏、左侧嵌套两个Frame的效果

可运行示例代码

import PySimpleGUI as sg

# 定义Frame 1的内部布局
frame1_content = [
    [sg.Text("这是Frame 1的内容")],
    [sg.Input(key="-INPUT1-", size=(25, 1))],
    [sg.Button("Frame1 确认", key="-BTN1-")]
]

# 定义Frame 3的内部布局
frame3_content = [
    [sg.Text("这是Frame 3的内容")],
    [sg.Radio("选项A", group_id=1), sg.Radio("选项B", group_id=1)]
]

# 组装左侧列:上下放置Frame1、Frame3
left_column = [
    [sg.Frame("Frame 1", frame1_content, size=(320, 240), pad=(5, 5))],
    [sg.Frame("Frame 3", frame3_content, size=(320, 140), pad=(5, 5))]
]

# 定义Frame 2的内部布局
frame2_content = [
    [sg.Text("这是Frame 2的内容")],
    [sg.Multiline(key="-OUTPUT-", size=(40, 24), pad=(5, 5))]
]

# 总布局:左侧列和Frame2同排行
final_layout = [
    [sg.Column(left_column, pad=(0, 0)), sg.Frame("Frame 2", frame2_content, pad=(5, 5))]
]

window = sg.Window("嵌套布局演示", final_layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

你可以根据实际需求调整各容器的size(大小)、pad(边距)参数,也可以添加element_justification参数调整容器内元素的对齐方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:57:05