复制条目小部件文本并粘贴到同一窗口中的另一个条目小部件中

时间:2018-03-07 23:57:28

标签: python tkinter

如何复制Entry小部件文本并粘贴到同一窗口中的另一个Entry小部件中。

即。让我们假设您正在完成联合信用申请,但您和共同申请人拥有相同的邮寄地址。不再重新键入相同的地址,应用程序上应该有一个检查按钮,当它被检查时,它会自动填充共同申请人的邮寄地址和主申请人的地址。如何在tkinter中完成此操作? (我是tkinter和python新秀) 在此先感谢DP

1 个答案:

答案 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()