如何从Scale / Slider中获取一个值,该值在Python tkinter中生成一个按钮

时间:2018-05-06 11:32:23

标签: python-3.x tkinter

我有一个按钮,点击时会显示滑块/比例。如何从滑块中获取所选值? 我的代码返回错误:" TypeError:funcSlider()缺少1个必需的位置参数:' value'"

self.list = {}

    def onClick(self):
        print (self.list)
        return
    def funcSlider(self, posX,posY,key,value):
        w = tk.Scale(self, from_=0, to=8, orient='horizontal')
        w.pack()
        w.place(x=posX, y=posY, in_=self)
        self.list [key] = value

button = tk.Button(self, text="button ",
                   command=lambda: self.funcSlider(120,33,'test'),width = 20)
button .pack(anchor="w")
button .place(x=250, y=50, in_=self)

button2 = tk.Button(self, text="Send",
                        command=self.onClick, width=42,bg="#4BAD2E")
button2 .pack(anchor="w")
button2 .place(x=250, y=430, in_=self)

1 个答案:

答案 0 :(得分:0)

我想我做到了。我不知道这是不是一个“好习惯”,但它有效:D

self.list = {}

    def foo(self,x,key):
        self.list [key] = x
    def onClick(self):
        print (self.list)
        return
    def funcSlider(self, posX,posY,key):
        w = tk.Scale(self, from_=0, to=8, orient='horizontal',command=lambda s: self.foo(s,key))
        w.pack()
        w.place(x=posX, y=posY, in_=self)
        self.list [key] = value

button = tk.Button(self, text="button ",
                   command=lambda: self.funcSlider(120,33,'test'),width = 20)
button .pack(anchor="w")
button .place(x=250, y=50, in_=self)

button2 = tk.Button(self, text="Send",
                        command=self.onClick, width=42,bg="#4BAD2E")
button2 .pack(anchor="w")
button2 .place(x=250, y=430, in_=self)