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

ne5o7dgx  于 2023-01-24  发布在  Python
关注(0)|答案(1)|浏览(487)

这是我第一次使用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)]
        ]

问题

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

通缉

因此,我正在寻找一种方法来自动大小的输入框。
我没有找到自动调整输入框大小的方法。
我试图获取文本长度,以便手动设置框尺寸,但我遇到了以下问题:
当我创建输入框的时候,我没有路径,所以我不知道它有多长。我没有弄清楚在我有了路径之后如何改变输入框的维度。有点像鸡腿的故事。

问题

如何避免路径比盒子长?

lmvvr0a8

lmvvr0a81#

已经给了我一个答案,而且效果很好:

starting_value = ''
layout = [
        [sg.Input(starting_value, size=(len(starting_value), 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')]]

相关问题