如何在 PySimpleGUI 中将代码与 window 集成

How to integrate code with window in PySimpleGUI

首先让我先说一下我一直在阅读 PySimpleGUI 文档页面并在网络上进行高低搜索,但我似乎找不到关于如何实际获得 window 的教程做事。我了解了 GUI 基础知识,但现在我不知道如何在 window 中插入代码,所以它确实可以做一些事情。

我正在尝试创建一个基本的距离转换器(从英里到公里)。布局有效,功能也有效,但我不知道如何将两者结合起来。

import PySimpleGUI as sg

layout = [[sg.Text("Enter miles"), sg.InputText(key='-IN-')],
          [sg.Text('Kilometers ->'),sg.Text(key='-OUT-')],
          [sg.Button('Calculate'),sg.Button('Exit')]]

window = sg.Window('Miles to Kilometers',layout)

while True:
    event,values = window.read()
    if event == 'Exit' or event == sg.WIN_CLOSED:
        break
    elif event == 'Calculate':
        window['-OUT-'].update(converter(values['-IN-']))

def converter():
    miles = int(input("Enter miles: "))
    res = miles * 1.609344
    print(round(res,2))
converter()

window.close()

我注意到几件事...

(1) 没有space要显示的'-OUT-'文本。通过使用“\t\t\t”创建 space,我允许输出一个地方被打印。

(2) 当按下'Calculate'时,需要调用该函数。您会看到我已经更改了函数 converter() 以接收用户在“-IN-”框中输入的值。

import PySimpleGUI as sg

def converter(miles):
    res = miles * 1.609344
    return res


layout = [[sg.Text("Enter miles"), sg.InputText(key='-IN-')],
          [sg.Text('Kilometers ->'),sg.Text("\t\t\t", key='-OUT-')],
          [sg.Button('Calculate'),sg.Button('Exit')]]

window = sg.Window('Miles to Kilometers',layout)

while True:
    event,values = window.read()
    if event == 'Exit' or event == sg.WIN_CLOSED:
        break
    if event == 'Calculate':
        res = converter(float(values['-IN-']))
        window['-OUT-'].update(value=round(res,2))


window.close()

这应该能满足您的需求。