如何解决如何使用 PYSIMPLEGUI 在文本 wdiget 中显示函数的输出?
import PySimpleGUI as sg
FILMS = [["There will be blood","Paul Thomas Anderson",2007],["Lion King","Rob Minkoff",1994],["Toy Story","Josh Cooley",1995],["Monty Python's Life of Brian","Terry Jones",1979],["Die Hard","John McTiernan",1988],["Rocky","John G. Avildsen",1976]]
def listprint():
for i in range (len(FILMS)):
print(FILMS[i][0])
event,values = sg.Window('Find a film',[[sg.Text('Are you ready:')],[sg.B("OK",key="-OK-"),sg.B("Return",key="-Return-")] ]).read(close=True)
if event == '-OK-':
sg.popup('Film names will be printed in the python output:',command = listprint)
解决方法
只需将结果传递给 sg.popup
,但使用 *
解包列表/元组。有时,它看起来不太好,您可以使用用户定义的弹出窗口来显示它们。
import PySimpleGUI as sg
def film_name():
return [item[0] for item in FILMS]
FILMS = [
["There will be blood","Paul Thomas Anderson",2007],["Lion King","Rob Minkoff",1994],["Toy Story","Josh Cooley",1995],["Monty Python's Life of Brian","Terry Jones",1979],["Die Hard","John McTiernan",1988],["Rocky","John G. Avildsen",1976],]
layout = [
[sg.Text('Are you ready:')],[sg.B("OK"),sg.B("Return")],]
window = sg.Window('Find a film',layout,finalize=True)
while True:
event,values = window.read()
if event in (sg.WINDOW_CLOSED,'Return'):
break
elif event == 'OK':
sg.popup('Film names will be printed in the python output:',*film_name())
print(event,values)
window.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。