-1

我不知道为什么我无法获得刻度的值以及为什么会收到此错误消息。谁能帮我?

from tkinter import *
Op = Tk()
def sb():
    print (Voboll1)




Oboll=Label(Op, text='BOLL')
Oboll.grid(row=1,column=0)

Voboll1 = StringVar()

# Création d'un widget Scale
Oboll1= Scale(Op,from_=-0.2,to=0.2,resolution=0.01,orient=HORIZONTAL,\
length=235,width=20,tickinterval=20,variable=Voboll1,command=sb)
Oboll1.grid(row=1,column=1)


Op.mainloop()

错误信息:

TypeError: sb() takes no arguments (1 given)
4

1 回答 1

2

从文档中:

缩放小部件command选项:此过程将传递一个参数,即新的缩放值。

来源:http : //infohost.nmt.edu/tcc/help/pubs/tkinter/web/scale.html

因此,command参数会自动将值传递给您调用的过程,在本例中为sb()。但是,您的sb定义没有参数,因此会发生冲突并发生错误。

由于您似乎想要使用Voboll1Scale 的值,因此请将其Voboll1作为参数包含在您的sb过程中。

def sb(Voboll1):
   ...

应该清除错误。

于 2017-07-12T22:51:15.593 回答