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
相关产品推荐
相关产品推荐

