我的代码如下。
from tkinter import *
def TakeInput():
print(tb.get()) #This will print Entry1 input
print(tb.get()) #This will print Entry2 input
tk=Tk()
#Entry 1
tb=Entry(tk) #Both Entry1 and Entry2 are stored in the same variable: tb
tb.pack()
#Entry 2
tb=Entry(tk) #Both Entry1 and Entry2 are stored in the same variable: tb
tb.pack()
#Button
b=Button(tk,text="PrintInput",command= TakeInput)
b.pack()
tk.mainloop()
我所要做的就是在将两者分配到同一个变量时同时显示条目1和条目2输入。
请注意,我是一名Python新手。
答案 0 :(得分:2)
创建一个包含条目的列表并循环遍历它们。
def print_input(*args):
for entry in entries:
print(entry.get())
entries = [Entry(tk) for _ in range(2)]
for entry in entries:
entry.pack()
btn = Button(tk, text="Print", command=print_input)
在您的版本中,您首先将tb
分配给一个条目,然后分配给另一个条目。这不是如何将来自多个小部件的输入存储在一个变量中的方式。您只需覆盖对已创建和存储的第一个小部件的引用。
答案 1 :(得分:1)
如果要自动执行此操作,则必须在修改后控制条目小部件中的字符串。您可以使用StringVar
执行此操作。你不需要一个按钮,当entry1的文本等于entry2的文本时,它会自动打印。
from tkinter import *
def TakeInput():
print(tb1.get())
print(tb2.get())
def on_entry1_changed(*args):
if sv_entry1.get() == sv_entry2.get():
TakeInput()
def on_entry2_changed(*args):
if sv_entry1.get() == sv_entry2.get():
TakeInput()
tk=Tk()
#Entry 1
sv_entry1 = StringVar()
sv_entry1.set("Entry1 text")
sv_entry1.trace("w", on_entry1_changed)
tb1=Entry(tk, textvariable=sv_entry1)
tb1.pack()
#Entry 2
sv_entry2 = StringVar()
sv_entry2.set("Entry2 text")
sv_entry2.trace("w", on_entry2_changed)
tb2=Entry(tk, textvariable=sv_entry2)
tb2.pack()
tk.mainloop()
如果你想按下按钮,你必须修改TakeInput函数,如下所示:
from tkinter import *
def TakeInput():
if tb1.get() == tb2.get():
print tb1.get()
tk=Tk()
#Entry 1
tb1=Entry(tk)
tb1.pack()
#Entry 2
tb2=Entry(tk)
tb2.pack()
#Button
b=Button(tk,text="PrintInput",command= TakeInput)
b.pack()
tk.mainloop()