首页 > 解决方案 > 特金特。更改页面并同时运行另一个功能的按钮

问题描述

是否可以使按钮 3 同时具有更改为第二页的命令以及从文本框中清除文本的命令?

def __init__(self, parent, controller):
    global entry, i, T
    tk.Frame.__init__(self, parent)
    self.controller = controller

    S = tk.Scrollbar(self)
    T = tk.Text(self)
    S.pack(side=tk.RIGHT, fill=tk.Y)
    T.pack(fill=tk.Y)
    S.config(command=T.yview)
    T.config(yscrollcommand=S.set)
    T.insert(tk.END, "Available Days to take Annual Leave:\n%s\n" % DaysInWeek)

    label = tk.Label(self, text="Do you want Annual Leave?")
    label.pack()
    entry = tk.Entry(self)
    entry.pack()
    button2 = tk.Button(self, text="Go", command=self.Annualinput)
    button2.pack()
    button3 = tk.Button(self, text="Return",
                       command=lambda: controller.show_frame("PageTwo"))
    button3.pack()

我希望 button3 拥有的另一个命令是

def clear(self):
    T.delete('1.0', tk.END)

我从tkinter 的两个帧之间的 Switch 中获取了切换页面代码

标签: pythontkinter

解决方案


分配一个回调函数来做这两件事:

def button3_callback(*args):
    T.delete('1.0', tk.END)
    controller.show_frame("PageTwo")

确保在函数内部定义此函数,__init__()否则T将超出范围。


推荐阅读