如何解决Tkinter按钮不更改全局变量
我已经开始学习python gui.Button函数调用不会更新全局变量。目前,我在以下代码中遇到问题。
from tkinter import *
root=Tk()
root.title("learning")
s=""
def change() :
global str
str="program"
button1=Button(root,text="Click me",command=change).pack()
print(s)
root.mainloop()
str
的值不会更新。
s =“”
def change():
global s
s="program"
change()
打印
这里的s的值被打印出来,而使用tkinter的值为空白。
解决方法
尝试一下:
cls.operator
尝试执行此操作:
- 先单击“打印x”-这应打印一个空白空间
- 然后单击
from tkinter import * root=Tk() root.title("learning") x="" def change() : global x x="program" print(x) def prt(): global x print(x) Button(root,text="Click me",command=change).pack() Button(root,text="Print x",command=prt).pack() root.mainloop() print(x)
-Click Me
更改为程序 - 然后再次单击“打印x”-这应打印程序
另一个错误-x
是button1
,因为您在同一行上使用过None
。因此,如果您想在前面的代码中使用.pack
,请将其用作:
button1
,
尝试一下:
from tkinter import *
def change():
global str
str="program"
print(str) # print function should be placed here
root=Tk()
root.title("learning")
root.geometry("300x300")
str=""
button1=Button(root,command=change).pack()
root.mainloop()
单击按钮时,将立即调用change()函数,因此应将打印功能放置在change()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。