如何从 tkinter 的输入框中打印值?
How to print the values from entry box of tkinter?
from tkinter import *
from tkinter import ttk
win=Tk()
Ent12=StringVar()
wrapper=Frame(win, bd=4, relief=RIDGE, bg="crimson")
wrapper.place(x=0, y=80, width=465, height=625)
def print1_selection():
for widget in entry_frame.winfo_children():
widget.destroy()
for widget in entry_frame2.winfo_children():
widget.destroy()
value = var1.get()
if value == "Alphabet":
label12=Label(entry_frame, text="Alphabet", bg="crimson", fg="white", font=("times new roman",15,"bold")).grid(row=6, column=0, padx=10, pady=5, sticky='w')
Ent12 = Entry(entry_frame, width=20)
Ent12.grid(row=6, column=1,padx=10, pady=5, sticky='w')
elif value == "Number":
label13=Label(entry_frame2, text="Number", bg="crimson", fg="white", font=("times new roman",15,"bold")).grid(row=7, column=0, padx=10, pady=5, sticky='w')
Ent12 = Entry(entry_frame2, width=20)
Ent12.grid(row=7, column=1,padx=10, pady=5, sticky='w')
var1 = StringVar(value=0)
entry_frame = Frame(wrapper, bg="crimson")
entry_frame.grid(row=8, column=0, columnspan=2,padx=10, pady=5, sticky='w')
entry_frame2 = Frame(wrapper, bg="crimson")
entry_frame2.grid(row=9, column=0, columnspan=2,padx=10, pady=5, sticky='w')
def lookup():
print(Ent12.get())
lbl4=Label(wrapper, text="Find", bg="crimson", fg="white", font=("times new roman",15,"bold")).grid(row=5, column=0, padx=10, pady=10, sticky='w')
r1 = Radiobutton(wrapper, text='Alphabet',variable=var1, value='Alphabet', command=print1_selection, width=22).grid(row=6,column=0,padx=10, pady=10, sticky='w')
r2 = Radiobutton(wrapper, text='Number', variable=var1, value='Number', command=print1_selection, width=22).grid(row=6,column=1,padx=10, pady=10, sticky='w')
btn = Button(wrapper, text = 'Find',command=lookup , bd = '5', width=15, height=2)
btn.grid(row=10, column=1, padx=20, pady=10)
win.mainloop()
在这段代码中,我想根据单选按钮打印输入的字母或数字的值。此外,如果我给两个条目都赋予了相同的名称,即 Ent12 ,可以吗?
这个命令
def lookup():
print(Ent12.get())
不提供任何输出。
print(Ent12.get())
获取您在开始时定义的 StringVar
的值:Ent12 = StringVar()
。而那个 StringVar
与 Ent12 = Entry(...)
没有任何关系。要解决此问题,您需要像这样在 print1_selection
中使 Ent12
变量成为全局变量:
from tkinter import *
from tkinter import ttk
win = Tk()
wrapper = Frame(win, bd=4, relief="ridge", bg="crimson")
wrapper.pack()
def print1_selection():
global Ent12, Ent13 # Make the variables global
for widget in entry_frame.winfo_children():
widget.destroy()
for widget in entry_frame2.winfo_children():
widget.destroy()
value = var1.get()
if value == "Alphabet":
label12 = Label(entry_frame, text="Alphabet", bg="crimson", fg="white",
font=("times new roman", 15, "bold"))
label12.grid(row=6, column=0, padx=10, pady=5, sticky="w")
Ent12 = Entry(entry_frame, width=20)
Ent12.grid(row=6, column=1, padx=10, pady=5, sticky="w")
elif value == "Number":
label13 = Label(entry_frame2, text="Number", bg="crimson", fg="white",
font=("times new roman", 15, "bold"))
label13.grid(row=7, column=0, padx=10, pady=5, sticky="w")
Ent12 = Entry(entry_frame2, width=20)
Ent12.grid(row=7, column=1, padx=10, pady=5, sticky="w")
var1 = StringVar(value=0)
entry_frame = Frame(wrapper, bg="crimson")
entry_frame.grid(row=8, column=0, columnspan=2 ,padx=10, pady=5, sticky="w")
entry_frame2 = Frame(wrapper, bg="crimson")
entry_frame2.grid(row=9, column=0, columnspan=2, padx=10, pady=5, sticky="w")
def lookup():
print(Ent12.get())
lbl4 = Label(wrapper, text="Find", bg="crimson", fg="white",
font=("times new roman", 15, "bold"))
lbl4.grid(row=5, column=0, padx=10, pady=10, sticky="w")
r1 = Radiobutton(wrapper, text="Alphabet",variable=var1, value="Alphabet",
command=print1_selection, width=22)
r1.grid(row=6,column=0,padx=10, pady=10, sticky="w")
r2 = Radiobutton(wrapper, text="Number", variable=var1, value="Number",
command=print1_selection, width=22)
r2.grid(row=6,column=1,padx=10, pady=10, sticky="w")
btn = Button(wrapper, text="Find",command=lookup, bd="5", width=15, height=2)
btn.grid(row=10, column=1, padx=20, pady=10)
win.mainloop()
from tkinter import *
from tkinter import ttk
win=Tk()
Ent12=StringVar()
wrapper=Frame(win, bd=4, relief=RIDGE, bg="crimson")
wrapper.place(x=0, y=80, width=465, height=625)
def print1_selection():
for widget in entry_frame.winfo_children():
widget.destroy()
for widget in entry_frame2.winfo_children():
widget.destroy()
value = var1.get()
if value == "Alphabet":
label12=Label(entry_frame, text="Alphabet", bg="crimson", fg="white", font=("times new roman",15,"bold")).grid(row=6, column=0, padx=10, pady=5, sticky='w')
Ent12 = Entry(entry_frame, width=20)
Ent12.grid(row=6, column=1,padx=10, pady=5, sticky='w')
elif value == "Number":
label13=Label(entry_frame2, text="Number", bg="crimson", fg="white", font=("times new roman",15,"bold")).grid(row=7, column=0, padx=10, pady=5, sticky='w')
Ent12 = Entry(entry_frame2, width=20)
Ent12.grid(row=7, column=1,padx=10, pady=5, sticky='w')
var1 = StringVar(value=0)
entry_frame = Frame(wrapper, bg="crimson")
entry_frame.grid(row=8, column=0, columnspan=2,padx=10, pady=5, sticky='w')
entry_frame2 = Frame(wrapper, bg="crimson")
entry_frame2.grid(row=9, column=0, columnspan=2,padx=10, pady=5, sticky='w')
def lookup():
print(Ent12.get())
lbl4=Label(wrapper, text="Find", bg="crimson", fg="white", font=("times new roman",15,"bold")).grid(row=5, column=0, padx=10, pady=10, sticky='w')
r1 = Radiobutton(wrapper, text='Alphabet',variable=var1, value='Alphabet', command=print1_selection, width=22).grid(row=6,column=0,padx=10, pady=10, sticky='w')
r2 = Radiobutton(wrapper, text='Number', variable=var1, value='Number', command=print1_selection, width=22).grid(row=6,column=1,padx=10, pady=10, sticky='w')
btn = Button(wrapper, text = 'Find',command=lookup , bd = '5', width=15, height=2)
btn.grid(row=10, column=1, padx=20, pady=10)
win.mainloop()
在这段代码中,我想根据单选按钮打印输入的字母或数字的值。此外,如果我给两个条目都赋予了相同的名称,即 Ent12 ,可以吗? 这个命令
def lookup():
print(Ent12.get())
不提供任何输出。
print(Ent12.get())
获取您在开始时定义的 StringVar
的值:Ent12 = StringVar()
。而那个 StringVar
与 Ent12 = Entry(...)
没有任何关系。要解决此问题,您需要像这样在 print1_selection
中使 Ent12
变量成为全局变量:
from tkinter import *
from tkinter import ttk
win = Tk()
wrapper = Frame(win, bd=4, relief="ridge", bg="crimson")
wrapper.pack()
def print1_selection():
global Ent12, Ent13 # Make the variables global
for widget in entry_frame.winfo_children():
widget.destroy()
for widget in entry_frame2.winfo_children():
widget.destroy()
value = var1.get()
if value == "Alphabet":
label12 = Label(entry_frame, text="Alphabet", bg="crimson", fg="white",
font=("times new roman", 15, "bold"))
label12.grid(row=6, column=0, padx=10, pady=5, sticky="w")
Ent12 = Entry(entry_frame, width=20)
Ent12.grid(row=6, column=1, padx=10, pady=5, sticky="w")
elif value == "Number":
label13 = Label(entry_frame2, text="Number", bg="crimson", fg="white",
font=("times new roman", 15, "bold"))
label13.grid(row=7, column=0, padx=10, pady=5, sticky="w")
Ent12 = Entry(entry_frame2, width=20)
Ent12.grid(row=7, column=1, padx=10, pady=5, sticky="w")
var1 = StringVar(value=0)
entry_frame = Frame(wrapper, bg="crimson")
entry_frame.grid(row=8, column=0, columnspan=2 ,padx=10, pady=5, sticky="w")
entry_frame2 = Frame(wrapper, bg="crimson")
entry_frame2.grid(row=9, column=0, columnspan=2, padx=10, pady=5, sticky="w")
def lookup():
print(Ent12.get())
lbl4 = Label(wrapper, text="Find", bg="crimson", fg="white",
font=("times new roman", 15, "bold"))
lbl4.grid(row=5, column=0, padx=10, pady=10, sticky="w")
r1 = Radiobutton(wrapper, text="Alphabet",variable=var1, value="Alphabet",
command=print1_selection, width=22)
r1.grid(row=6,column=0,padx=10, pady=10, sticky="w")
r2 = Radiobutton(wrapper, text="Number", variable=var1, value="Number",
command=print1_selection, width=22)
r2.grid(row=6,column=1,padx=10, pady=10, sticky="w")
btn = Button(wrapper, text="Find",command=lookup, bd="5", width=15, height=2)
btn.grid(row=10, column=1, padx=20, pady=10)
win.mainloop()