【发布时间】:2018-08-29 04:21:29
【问题描述】:
请看,我在这个主题上也提到过类似的相关答案
1) 在什么情况下,StringVar() / IntVar() 会分别返回空白 / 0 值?
2) 下面是我应用到我的应用程序中的一项功能的一小部分代码。请告诉我我的代码中缺少什么来检索预期的输出。
from tkinter import *
class App(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.pack()
Label(self,text="Choose timer options:").pack()
self.delayvar = IntVar()
self.delayradio1 = Radiobutton(self,text="Hours",variable=self.delayvar,value=1,command=self.delayfunc)
self.delayradio1.pack()
self.delayradio2 = Radiobutton(self,text="Minutes",variable=self.delayvar,value=2,command=self.delayfunc)
self.delayradio2.pack()
self.delayradio3 = Radiobutton(self,text="Seconds",variable=self.delayvar,value=3,command=self.delayfunc)
self.delayradio3.pack()
def delayfunc(self):
self.delayvarvalue = self.delayvar.get()
self.delayentryvar = StringVar() # or IntVar()
self.delayent = Entry(self,textvariable=self.delayentryvar)
self.delayent.pack()
if self.delayvarvalue == 1:
Button(self,text="save delay",command=self.delayfunc1).pack()
self.delayentry = self.delayent.get() #self.delayentryvar.get()
print(self.delayentry)
def delayfunc1(self):
self.delval = Text(self,height=1, width=10)
self.delval.pack()
self.delval.insert(END,self.delayentry)
if __name__ == '__main__' :
root = Tk()
App(root)
root.title("Delay Timer")
root.geometry("200x200")
root.mainloop()
【问题讨论】:
-
我不知道是什么问题。这个程序的哪一部分做了一些意想不到的事情?
-
Entry
self.delayent没有返回值,我将其存储在self.delayentry中,稍后我将使用它出现在文本字段中 -
它正在返回正确的值。新创建的条目是空的,所以
self.delayent.get()当然会返回一个空字符串。这不像是你给了用户输入任何文本的机会,是吗?
标签: python python-3.x tkinter radio-button tkinter-entry