我已定义了一个新的Entry
子类:NewEntry
,但它无法获取放入其中的数字。我该如何解决这个问题?
单击按钮时,显示错误消息:
ValueError: could not convert string to float:
from Tkinter import *
root = Tk()
class NewEntry(Entry):
def __init__(self,parent,cusdef='1'): #Initiation default number is '1'
Entry.__init__(self,parent)
self.cusdef = cusdef
v=StringVar()
v.set(self.cusdef)
self = Entry(self,textvariable=v)
self.pack()
return
def GetNum():
a=e.get()
print float(a)
return
e = NewEntry(root)
e.pack(fill='x')
button = Button(root,command=GetNum)
button.pack(fill='x')
root.mainloop()
答案 0 :(得分:0)
您似乎在尝试初始化Entry
子类:
self = Entry(self,textvariable=v)
self.pack()
但相反,你只是覆盖名为self
的变量并创建一个被丢弃的新Entry
。
相反,您需要使用正确的参数进行一次Entry.__init__
调用:
class NewEntry(Entry):
def __init__(self,parent,cusdef='1'):
self.cusdef = cusdef
v=StringVar()
v.set(self.cusdef)
Entry.__init__(self,parent, textvariable=v)
self.pack()
return