[英]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()
在这段代码中,我想根据单选按钮打印输入的字母或数字的值。 此外,如果我将两个条目都赋予相同的名称 ieEnt12 是否可以? 这个命令
def lookup():
print(Ent12.get())
在 output 中没有给出任何内容。
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.