首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击TTK检测按钮

点击TTK检测按钮
EN

Stack Overflow用户
提问于 2014-11-06 00:23:20
回答 2查看 1.4K关注 0票数 1

我有一个登录框架类,我要添加到根窗口。我想要做的是检测何时从登录框点击按钮(在代码中标记为:#检测登录用户名和密码,然后退出按钮点击这里)。这样做的目的是使ui与身份验证方法保持分离。我该怎么做呢?谢谢你提前了。

代码是这样的:

代码语言:javascript
复制
class LoginFrame(ttk.Frame):
    def __init__(self, parent):

        login_frame = ttk.Frame(parent)
        login_frame.pack(pady=70)

        logo = ttk.Label(login_frame, text="Login")
        logo.grid(row=0, column=0, columnspan=2, pady=10)

        username = ttk.Entry(login_frame)
        username.grid(row=20, column=0, columnspan=2, padx=10, pady=10, sticky="ew")

        password = ttk.Entry(login_frame)
        password.configure(show="#")
        password.grid(row=30, column=0, columnspan=2, padx=10, pady=10, sticky="ew")

        login_btn = ttk.Button(login_frame, text="Login", command=self.authenticate)
        login_btn.grid(row=40, column=0, columnspan=1, padx=10, pady=10, sticky="ew")

        quit_btn = ttk.Button(login_frame, text="Quit", command=self.quit_app)
        quit_btn.grid(row=40, column=1, columnspan=1, padx=10, pady=10, sticky="ew")

        error_lbl = ttk.Label(login_frame, justify="center", foreground="#FF0000")
        error_lbl.grid(row=50, column=0, columnspan=2, padx=10, pady=10, sticky="ew")

        username.focus_set()

    def authenticate(self):
        #return login button is clicked with username and password
        pass

    def quit_app(self):
        #return quit button is clicked
        pass

root = Tk()
root.config(background="light grey")
root.resizable(width=False, height=False)
root.geometry("800x500")
lf = LoginFrame(root)

#Detect login with username and password and quit button click here

root.mainloop()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-06 02:11:49

你想要的都说不通。lf = ...root.mainloop()之间不应该有任何代码。wqy的工作是创建小部件并将命令绑定到它们,然后tkinter将在单击小部件时调用这些命令。

如果您希望在用户单击登录按钮后发生某些事情,请将命令与其关联起来,并将您想要执行的任何代码放入该命令中。

票数 2
EN

Stack Overflow用户

发布于 2014-11-06 00:28:44

您需要它有一个名为回调的命令。

代码语言:javascript
复制
login_btn = ttk.Button(login_frame, text="Login")
login_btn.grid(row=40, column=0, columnspan=1, padx=10, pady=10, sticky="ew", command=authenticate)

注意新的部分command=authenticate

命令可以设置为任何方法。

http://effbot.org/zone/tkinter-callbacks.htm

我会让你知道退出按钮,我不想做任何事情,它会帮助你自己做一些。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26769705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档