Tkinter - 入口 .get() 函数
Tkinter - Entry .get() Function
class FCMenu:
def __init__(self,master):
frame=Frame(master)
frame.pack()
Label(frame, text="What is the number?").grid(row=0)
self.num = IntVar()
self.entry = Entry(frame,textvariable=self.num).grid(row=1)
button = Button(frame, text="Factorize", command=self.calc).grid(row=2)
self.resultvar = StringVar()
Label(frame, textvariable=self.resultvar).grid(row=3)
def calc(self):
e = int(self.entry.get())
print(e,self.num.get())
...
我正在尝试使用 tkinter 创建 Python GUI,如上所示。但是,每次我在条目或文本变量上调用 .get()
时,它都会失败。对于条目本身,它解释了 NoneType 没有 .get()
函数。如果我删除它并仅使用 self.num.get()
,它会打印 0 或 0.0,具体取决于我是否将其转换为整数。如果我把 self.num
变成 StringVar
,它什么都不打印。简单地说,我找不到一种方法来获取我想要检索的输入。
制作了您的代码的简化版本,并且随着 Entry
小部件的更改,它可以正确打印。您的代码中的其他地方可能有错误吗?还是错误的缩进?这是我测试过的代码(这是 2.7 代码,但也适用于 3.5 版本的代码):
import Tkinter as tk
class FCMenu:
def __init__(self, master):
frame = tk.Frame(master)
self.num = tk.IntVar()
self.entry = tk.Entry(frame, textvariable=self.num)
self.button = tk.Button(frame, text='Calc', command=self.calc)
frame.pack()
self.entry.pack()
self.button.pack()
def calc(self):
print(self.num.get(), self.entry.get())
root = tk.Tk()
frame = FCMenu(root)
root.mainloop()
它从 self.num.get()
和 self.entry.get()
打印。第一个是 Int
,第二个是 String
。
class FCMenu:
def __init__(self,master):
frame=Frame(master)
frame.pack()
Label(frame, text="What is the number?").grid(row=0)
self.num = IntVar()
self.entry = Entry(frame,textvariable=self.num).grid(row=1)
button = Button(frame, text="Factorize", command=self.calc).grid(row=2)
self.resultvar = StringVar()
Label(frame, textvariable=self.resultvar).grid(row=3)
def calc(self):
e = int(self.entry.get())
print(e,self.num.get())
...
我正在尝试使用 tkinter 创建 Python GUI,如上所示。但是,每次我在条目或文本变量上调用 .get()
时,它都会失败。对于条目本身,它解释了 NoneType 没有 .get()
函数。如果我删除它并仅使用 self.num.get()
,它会打印 0 或 0.0,具体取决于我是否将其转换为整数。如果我把 self.num
变成 StringVar
,它什么都不打印。简单地说,我找不到一种方法来获取我想要检索的输入。
制作了您的代码的简化版本,并且随着 Entry
小部件的更改,它可以正确打印。您的代码中的其他地方可能有错误吗?还是错误的缩进?这是我测试过的代码(这是 2.7 代码,但也适用于 3.5 版本的代码):
import Tkinter as tk
class FCMenu:
def __init__(self, master):
frame = tk.Frame(master)
self.num = tk.IntVar()
self.entry = tk.Entry(frame, textvariable=self.num)
self.button = tk.Button(frame, text='Calc', command=self.calc)
frame.pack()
self.entry.pack()
self.button.pack()
def calc(self):
print(self.num.get(), self.entry.get())
root = tk.Tk()
frame = FCMenu(root)
root.mainloop()
它从 self.num.get()
和 self.entry.get()
打印。第一个是 Int
,第二个是 String
。