[英]How do I add elements horizontally instead of vertically in PySimpleGUI?
我試圖讓我的 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
以下形式的布局left
, separator
和right
垂直或按行排列。
layout = [
[element1],
[sg.HSeparator(pad=(500,0))],
[element2],
]
應該是這樣的
layout = [
[element1, sg.HSeparator(pad=(500,0)), element2],
]
由於 element1 和 element2 用於另一個復雜的布局,請使用 Frame 或 Column 元素。
對於水平布局,這里將使用VSeparator
而不是HSeparator
。
對於 Column 垂直對齊頂部的元素,因此添加了選項vertical_alignment='top'
。
所以你代碼中的layout
可能是這樣的,
layout = [
[sg.Column(left_part, vertical_alignment='top'), sg.VSeparator(), sg.Column(right_part, vertical_alignment='top')],
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.