我試圖讓我的 GUI 有 2 個“部分”(一個左一個右),自然地,向布局添加元素只會垂直擴展它,所以我嘗試做一個“left_part”布局和一個“right_part”布局,然后將它們與水平分隔符填充合并,但它給了我完全不同的東西。
理想情況下,我想要這樣的東西(也許兩者之間也有一條細線):

我得到的是:

這是代碼:
import PySimpleGUI as sg
left_part = [
[sg.Text("Pick your favorite fruit")],
[sg.Input(size=(25, 1), key="path")],
[sg.FileBrowse(key="fav"), sg.Button("Submit")],
[sg.Image(key="img1")],
[sg.Text("Pick your favorite number")],
[sg.Input(key="num", size=(10,10))],
[sg.Button("Submit")],
]
right_part = [
[sg.Text("Pick your favorite animal")],
[sg.Input(key="animal")],
[sg.Button("Show image of animal")],
[sg.Image(key="img2")]
]
layout = [
[left_part],
[sg.HSeparator(pad=(500,0))],
[right_part],
]
window = sg.Window("Favorites", layout)
while True:
event, values = window.read()
if event == "Exit" or event == sg.WIN_CLOSED:
break
uj5u.com熱心網友回復:
布局如下形式left,垂直separator或right成行。
layout = [
[element1],
[sg.HSeparator(pad=(500,0))],
[element2],
]
應該是這樣的
layout = [
[element1, sg.HSeparator(pad=(500,0)), element2],
]
由于 element1 和 element2 用于另一個復雜的布局,請使用 Frame 或 Column 元素。
對于水平布局,此處將使用 , 而HSeparator不是VSeparator。
對于 Column 垂直對齊頂部的元素,因此 vertical_alignment='top'添加了選項。
所以layout在你的代碼中可能是這樣的,
layout = [
[sg.Column(left_part, vertical_alignment='top'), sg.VSeparator(), sg.Column(right_part, vertical_alignment='top')],
]

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/456503.html
標籤:Python 用户界面 布局 分隔器 pysimplegui
