将PySimpleGUI导入为sg
导入操作系统
layout = [[sg.Text('Velg mappe som skal tas backup av og hvor du vil plassere backupen')],
[sg.Text('Source folder', size=(15, 1)), sg.InputText(), sg.FolderBrowse()],
[sg.Text('Backup destination ', size=(15, 1)), sg.InputText(), sg.FolderBrowse()],
[sg.Text('Made by Henrik og Thomas™')],
[sg.Submit(), sg.Cancel()]]
window = sg.Window('Backup Runner v2.1')
event, values = window.Layout(layout).Read()
按下提交按钮后如何调用函数?或其他任何按钮?
最佳答案
PySimpleGUI文档在事件/回调部分中讨论了如何执行此操作
https://pysimplegui.readthedocs.io/#the-event-loop-callback-functions
使用回调来指示按钮按下的其他Python GUI框架并不多。取而代之的是,所有按钮的按下都作为“事件”从Read调用返回。
要获得类似的结果,请检查事件并让函数自己调用。
import PySimpleGUI as sg
def func(message):
print(message)
layout = [[sg.Button('1'), sg.Button('2'), sg.Exit()] ]
window = sg.Window('ORIGINAL').Layout(layout)
while True: # Event Loop
event, values = window.Read()
if event in (None, 'Exit'):
break
if event == '1':
func('Pressed button 1')
elif event == '2':
func('Pressed button 2')
window.Close()
要查看此代码在线运行,您可以在此处使用网络版本运行它:
https://repl.it/@PySimpleGUI/Call-Func-When-Button-Pressed
添加4/5/2019
我还应该在回答中指出,您可以在致电Read之后立即添加事件检查。您不必像我展示的那样使用事件循环。它可能看起来像这样:
event, values = window.Layout(layout).Read() # from OP's existing code
if event == '1':
func('Pressed button 1')
elif event == '2':
func('Pressed button 2')