Python Tkinter 入口 get()
Python Tkinter Entry get()
我正在尝试使用 Tkinter 的 Entry 小部件。我无法让它做一些非常基本的事情:return 输入的值。
有谁知道为什么这么简单的脚本不会 return 任何东西?我尝试了很多组合并研究了不同的想法。
此脚本运行但不打印条目:
from Tkinter import *
root = Tk()
E1 = Entry(root)
E1.pack()
entry = E1.get()
root.mainloop()
print "Entered text:", entry
看起来很简单。
编辑:
万一其他人遇到这个问题并且不明白,这就是最终对我有用的东西。我在条目 window 中添加了一个按钮。按钮的命令关闭 window 并执行 get() 函数:
from Tkinter import *
def close_window():
global entry
entry = E.get()
root.destroy()
root = Tk()
E = tk.Entry(root)
E.pack(anchor = CENTER)
B = Button(root, text = "OK", command = close_window)
B.pack(anchor = S)
root.mainloop()
并且return编辑了所需的值。
你的第一个问题是 entry = E1.get()
中对 get
的调用甚至发生在你的程序开始之前,所以很明显 entry
将指向一些空字符串。
你最终的第二个问题是文本无论如何只会在主循环完成后打印,即你关闭 tkinter 应用程序。
如果您想在程序 运行 时打印 Entry
小部件的内容,您需要安排回调。例如,您可以听到按下 <Return>
键,如下所示
import Tkinter as tk
def on_change(e):
print e.widget.get()
root = tk.Tk()
e = tk.Entry(root)
e.pack()
# Calling on_change when you press the return key
e.bind("<Return>", on_change)
root.mainloop()
from tkinter import *
import tkinter as tk
root =tk.Tk()
mystring =tk.StringVar(root)
def getvalue():
print(mystring.get())
e1 = Entry(root,textvariable = mystring,width=100,fg="blue",bd=3,selectbackground='violet').pack()
button1 = tk.Button(root,
text='Submit',
fg='White',
bg= 'dark green',height = 1, width = 10,command=getvalue).pack()
root.mainloop()
我正在尝试使用 Tkinter 的 Entry 小部件。我无法让它做一些非常基本的事情:return 输入的值。
有谁知道为什么这么简单的脚本不会 return 任何东西?我尝试了很多组合并研究了不同的想法。
此脚本运行但不打印条目:
from Tkinter import *
root = Tk()
E1 = Entry(root)
E1.pack()
entry = E1.get()
root.mainloop()
print "Entered text:", entry
看起来很简单。
编辑: 万一其他人遇到这个问题并且不明白,这就是最终对我有用的东西。我在条目 window 中添加了一个按钮。按钮的命令关闭 window 并执行 get() 函数:
from Tkinter import *
def close_window():
global entry
entry = E.get()
root.destroy()
root = Tk()
E = tk.Entry(root)
E.pack(anchor = CENTER)
B = Button(root, text = "OK", command = close_window)
B.pack(anchor = S)
root.mainloop()
并且return编辑了所需的值。
你的第一个问题是 entry = E1.get()
中对 get
的调用甚至发生在你的程序开始之前,所以很明显 entry
将指向一些空字符串。
你最终的第二个问题是文本无论如何只会在主循环完成后打印,即你关闭 tkinter 应用程序。
如果您想在程序 运行 时打印 Entry
小部件的内容,您需要安排回调。例如,您可以听到按下 <Return>
键,如下所示
import Tkinter as tk
def on_change(e):
print e.widget.get()
root = tk.Tk()
e = tk.Entry(root)
e.pack()
# Calling on_change when you press the return key
e.bind("<Return>", on_change)
root.mainloop()
from tkinter import *
import tkinter as tk
root =tk.Tk()
mystring =tk.StringVar(root)
def getvalue():
print(mystring.get())
e1 = Entry(root,textvariable = mystring,width=100,fg="blue",bd=3,selectbackground='violet').pack()
button1 = tk.Button(root,
text='Submit',
fg='White',
bg= 'dark green',height = 1, width = 10,command=getvalue).pack()
root.mainloop()