Mat*_*one 5 python user-interface pysimplegui
我正在构建一个简单的 GUIpysimplegui并希望右对齐框架内的按钮。我找到了有关如何使用文本而不是按钮执行此操作的详细信息。
例如,我希望下面的按钮能够卡入框架的右侧,周围有凹槽。我要这个:
看起来更像这样:
但无需添加手动调整的空白文本元素即可使其接近,因为这通常无法正确排列(请注意sg.Text("", size=(22, 1))下面注释掉的行)。
import sys
import PySimpleGUI as sg
sg.theme("Light Blue 2")
layout = [
[
sg.Text("Target folder", size=(9, 1)),
sg.InputText(default_text="Choose a folder...", size=(59, 1)),
sg.FolderBrowse(),
],
[
sg.Frame(
layout=[
[
sg.Text("First parameter", size=(15, 1)),
sg.InputText(default_text="2", size=(3, 1),),
],
[
sg.Text("Second parameter", size=(15, 1)),
sg.InputText(default_text="8", size=(3, 1),),
# sg.Text("", size=(22, 1)),
sg.Submit("A nice button", size=(23, 1)),
],
[sg.ProgressBar(1, orientation="h", size=(50, 20))],
],
title="Cool subpanel",
relief=sg.RELIEF_GROOVE,
)
],
]
window = sg.Window("Test window", layout)
while True:
event, values = window.read()
if event == "Cancel" or event is None:
sys.exit()
Run Code Online (Sandbox Code Playgroud)
您的问题只是错过了PySimpleGUI 的发布,这使得此操作变得微不足道。
StackOverflow 的一个问题是——“一切都不会消亡”……包括旧的解决方案。这是一个真正的问题,我还没有找到可靠的解决方案。
该技术于 2021 年 9 月发布版本 4.48.0,并使用当时的新Push元素。顾名思义,意志Push推动元素。通过在元素之间放置一个,它将把元素推开。
这是您的代码,Push在您想要右对齐的按钮之前添加了一个。
import sys
import PySimpleGUI as sg
sg.theme("Light Blue 2")
layout = [
[
sg.Text("Target folder", size=(9, 1)),
sg.InputText(default_text="Choose a folder...", size=(59, 1)),
sg.FolderBrowse(),
],
[
sg.Frame(
layout=[
[
sg.Text("First parameter", size=(15, 1)),
sg.InputText(default_text="2", size=(3, 1),),
],
[
sg.Text("Second parameter", size=(15, 1)),
sg.InputText(default_text="8", size=(3, 1),),
sg.Push(),
sg.Button("A nice button", size=(23, 1)),
],
[sg.ProgressBar(1, orientation="h", size=(50, 20))],
],
title="Cool subpanel",
relief=sg.RELIEF_GROOVE,
)
],
]
window = sg.Window("Test window", layout)
while True:
event, values = window.read()
if event == "Cancel" or event is None:
sys.exit()
Run Code Online (Sandbox Code Playgroud)
注意(这并不是非常重要)-我已经替换Submit为Button,因为使用Submit可能会令人困惑。 Submit无非是一个返回Button带有 text 的元素的函数"Submit"。它没有做任何特殊的事情,实际上提供的参数可能比Button.