如何解决使用函数更新元素 - PySimpleGUI
在我的应用程序中,我试图通过在按下特定按钮时启动函数调用来更新文本元素。现在,按下按钮会在控制台中生成错误:NameError: name 'window' is not defined。
我正在使用的代码是:
import PySimpleGUI as sg
sg.theme('DarkAmber')
introText = """ Let's begin!"""
landing = """ Okay"""
col1 = [[sg.Button("""Let's begin!"""),sg.Button('Win3')]]
col2 = [[sg.Button('Exit')]]
def makeWin1():
layout = [[sg.Menu(menu_def)],[sg.Text(introText,font= 'Helvetica 10',justification='center',key='text1')],[sg.Column(col1,vertical_alignment='center',k='C1')],[sg.Column(col2,k='C2')]]
return sg.Window('Escape From Tenopia 2',layout,finalize=True,)
def main():
window1 = makeWin1()
while True:
window,event,values = sg.read_all_windows()
if window == sg.WIN_CLOSED:
break
if event == sg.WIN_CLOSED or event == 'Exit':
window.close()
if window == window1:
window1 = None
if event == 'About...':
sg.popup(introText)
if event == """Let's begin!""":
change1()
def change1():
window["text1"].update(landing)
if __name__ == '__main__':
main()
我怎样才能做到这样按下“让我们开始吧!”按钮更新主要文本元素以显示“着陆”中的文本?
解决方法
你需要给change1()传递一个参数:
if event == "Let's begin!":
change1(window1)
def change1(window):
window["text1"].update(landing)
或者不要为此使用任何额外的函数并像这样调整 main() :
if event == "Let's begin!":
window1["text1"].update(landing)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。