Tkinter按钮不更改全局变量

时间:2020-09-17 12:06:12

标签: python button 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的值为空白。

2 个答案:

答案 0 :(得分:0)

尝试一下:

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”-这应打印程序

另一个错误-xbutton1,因为您在同一行上使用过None。因此,如果您想在前面的代码中使用.pack,请将其用作:

button1

答案 1 :(得分:0)

尝试一下:

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,text="Click me", command=change).pack()
    root.mainloop()

单击按钮时,将立即调用change()函数,因此应将打印功能放置在change()