Python 2.7 在标签Tkinter python 2.7上显示变量

Python 2.7 在标签Tkinter python 2.7上显示变量,python-2.7,tkinter,Python 2.7,Tkinter,我在这里读了一些类似的问题,但无法修复我的代码,所以我问 我正在用gui开发一个小程序,按下一个按钮,它给变量加1,按下第二个按钮,它减去,按下第三个按钮,它打印变量的当前值。现在我希望它总是在gui上,在标签上打印变量,我已经阅读了如何做,我认为我得到了它,但是当我运行代码时,标签不起作用。但它会运行,因此没有错误消息 from Tkinter import * class experiment: def __init__(self, master): globa

我在这里读了一些类似的问题,但无法修复我的代码,所以我问

我正在用gui开发一个小程序,按下一个按钮,它给变量加1,按下第二个按钮,它减去,按下第三个按钮,它打印变量的当前值。现在我希望它总是在gui上,在标签上打印变量,我已经阅读了如何做,我认为我得到了它,但是当我运行代码时,标签不起作用。但它会运行,因此没有错误消息

from Tkinter import *

class experiment:


    def __init__(self, master):
        global students
        frame = Frame(master)
        frame.pack()

        self.addbutton = Button(frame, text="Add Student", command=self.addstudent, bg="black", fg="white")
        self.addbutton.grid(row=0, column=1, sticky = E)

        self.subbutton = Button(frame,text="Subtract Student", command=self.subtractstudent, bg="black", fg="white")
        self.subbutton.grid(row=0, column=2, sticky = E)

        self.checkbutton = Button(frame,text="Check Record", command=self.checkstudentrec, bg="black", fg="white")
        self.checkbutton.grid(row=0, column=3, sticky= E )

        self.quitButton = Button(frame,text="Quit", command=frame.quit)
        self.quitButton.grid(row=2, column=3, sticky=W)

        self.label1 = Label(frame, textvariable = students)
        self.label1.grid(row=2, column=1)

    def addstudent(self):
        global students
        students = students + 1
        print "\n Student Added"
    def subtractstudent(self):
        global students
        students = students - 1
        print "\n Student Deleted"
    def checkstudentrec(self):
        print students
        print "\n Student Record Found"

root = Tk()
students = 0
b = experiment(root)
root.mainloop()

标签
textvariable
参数expect。这些是可以追溯的,也就是说,程序的任何部分都可以订阅它们的值,并在其更改时得到通知

因此,使用
IntVar
初始化学生并调整增量代码应该可以完成这项工作

def addstudent(self):
    global students
    students.set(students.get() + 1)

#(...)
students = IntVar()