如何复制Entry小部件文本并粘贴到同一窗口中的另一个Entry小部件中。
即。让我们假设您正在完成联合信用申请,但您和共同申请人拥有相同的邮寄地址。不再重新键入相同的地址,应用程序上应该有一个检查按钮,当它被检查时,它会自动填充共同申请人的邮寄地址和主申请人的地址。如何在tkinter中完成此操作? (我是tkinter和python新秀) 在此先感谢DP
答案 0 :(得分:0)
可能有更多方法可以实现您想要的行为。我认为使用textvariable
选项和Variable Classes
非常适合。他们一起让小部件的文本始终与另一个文本相同。使用Checkbutton
,用户决定是否这样做:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
def on_selection(copy_widget, paste_widget, condition_widget):
if condition_widget.var.get():
paste_widget['textvariable'] = copy_widget['textvariable']
else:
paste_widget['textvariable'] = ''
def create_entry_widgets(master):
entries = list()
for i in range(2):
entries.append(tk.Entry(master))
entries[-1].pack()
entries[0].var = tk.StringVar()
entries[0]['textvariable'] = entries[0].var
return entries
def create_checkbutton(master, entries):
checkbutton = tk.Checkbutton(master, text="Copy?")
checkbutton.var = tk.BooleanVar(value=False)
checkbutton.config(variable=checkbutton.var, onvalue=True, offvalue=False)
checkbutton['command'] = lambda cw=entries[0], pw=entries[1], \
cdw=checkbutton: on_selection(cw, pw, cdw)
checkbutton.pack()
return checkbutton
def main():
root = tk.Tk()
entries = create_entry_widgets(root)
checkbutton = create_checkbutton(root, entries)
tk.mainloop()
if __name__ == '__main__':
main()