我在使用tkinter时遇到此属性错误

时间:2013-11-21 18:11:34

标签: python python-3.x tkinter

from tkinter import *
import tkinter.font

class App:

    def __init__(self, master):
        self.master = master
        self.frame = Frame(master)
        self.frame.grid()

        labell = Label(self.frame, text="min: ")
        labell.grid()

        self.min = Scale(self.frame, from_=1, to=10, orient=HORIZONTAL,
                     command=self.updateMax)
        self.min.grid(row=0, column=1, columnspan=2)

这就是错误所在的地方:

    def updateMax(self,value):
        self.max.config(from_=int(value)+1)
        self.max.config(to=int(value)+11)

    def compute(self):
        lower = self.min.get()
        upper = self.max.get()+1
        self.list.delete(0,END)
        for x in range(lower,upper):
            str = "{0:2d} {1:3d} {2:4d}".format(x,x*x,x*x*x)
            self.list.insert(END,str)

root = Tk()
app = App(root)
root.mainloop()

ERROR !!

AttributeError: 'App' object has no attribute 'max'

我在这里做错了什么?请尽快回答。感谢。

1 个答案:

答案 0 :(得分:2)

如果这是所有代码,那么问题很简单:你从未定义self.max但是你试图在这里使用它:

def updateMax(self,value):
    self.max.config(from_=int(value)+1)
    self.max.config(to=int(value)+11)

也许你打算使用你确定的self.min

def updateMax(self,value):
    self.min.config(from_=int(value)+1)
    self.min.config(to=int(value)+11)

如果没有,那么您需要在之前定义self.max