首页 > 解决方案 > 如何在 PySimpleGUI 中将代码与窗口集成

问题描述

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

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

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()

标签: pysimplegui

解决方案


我注意到的几件事...

(1) '-OUT-' 文本没有空间显示。通过使用“\t\t\t”创建一个空间,我允许输出一个打印位置。

(2) 按下“计算”时,需要调用该函数。你会看到我已经改变了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()

这应该给你你正在寻找的东西。


推荐阅读