繁体   English   中英

如何在 PySimpleGUI 中自动调整输入框的大小

[英]How to automatically resize an input-box in PySimpleGUI

这是我第一次使用 Stackoverflow。

我是初学者,所以我可能会按错误的顺序做事或做错事。 我正在学习 PySimpleGUI。

代码

我使用带有“浏览”按钮的输入框,如下所示:

layout = [
    [sg.Input(size=(30, 1), key='-IN1-', enable_events=True), sg.Button('Browse')],
    [sg.Input(k='-IN2-'), sg.Button('-Date1-')],
    [sg.T('Starting Year:'), sg.Input(size=(5, 1), k='-YEAR-')],
    [sg.Input(k='-IN3-'), sg.Button('-Date2-')],
    [sg.B('Go'), sg.B('Exit')]
]

window = sg.Window("Chooser Using Popups", layout, keep_on_top=True)

while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    if event == 'Browse':
        filename = sg.popup_get_file('', no_window=True, keep_on_top=True)
        layout = [
            [sg.Input(size=(len(filename), 1), key='-IN1-'), sg.Button('Browse')],
            [sg.Input(size=(len(filename), 1), key='-IN1-', enable_events=True), sg.Button('Browse')],
            [window['-IN1-'].update(filename)]
        ]

问题

当我 select 文件路径太长时,我的输入框包含完整路径,但并不完全可见。

通缉

所以我正在寻找一种自动调整输入框大小的方法。

我没有找到自动调整输入框大小的方法。

我试图获取文本长度以手动设置框尺寸,但我遇到了以下问题:

当我创建盒子时,我没有路径,所以我不知道它有多长。 获取路径后,我无法弄清楚如何更改输入框尺寸。 有点鸡腿的故事。

问题

如何避免比盒子长的路径?

已经给我一个答案,它工作正常: starting_value = '' layout = [ [sg.Input(starting_value, size=(len(starting_value), 1), key='-IN1-', enable_events=True), sg.Button('浏览')], [sg.Input(k='-IN2-'), sg.Button('-Date1-')], [sg.T('开始年份:'), sg. Input(size=(5, 1), k='-YEAR-')], [sg.Input(k='-IN3-'), sg.Button('-Date2-')], [sg.B ('开始'), sg.B('退出')]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM