【问题标题】:What is wrong with these lines? [duplicate]这些行有什么问题? [复制]
【发布时间】:2017-02-21 11:08:23
【问题描述】:

我在一个大程序中有以下几行。

username = Entry(loginPage)
password = Entry(loginPage)

button1 = Button(loginPage,text = "Login", fg = "red", command = loginClicked(username.get(),password.get()))

程序运行时,函数loginClicked在开始时运行一次(当字段为空且未单击按钮时),这是它运行的唯一时间。之后,当单击按钮时,该功能根本不会运行。函数中的打印语句证实了这一点。

【问题讨论】:

    标签: python user-interface button login tkinter


    【解决方案1】:

    如 cmets 中所述,当您创建小部件时,您在创建小部件之前调用(“运行”)函数,而不是将函数句柄(此处可能是错误的术语)传递给小部件选项 command= .

    这可以通过使用带有lambda 的匿名函数来解决:

    button1 = Button(root,text = "Login",
                     fg = "red", 
                     command = lambda: loginClicked(username.get(), password.get()))
    

    这会创建一个“丢弃”函数来输入 Tkinter 的回调,它会使用正确的参数调用您的函数 loginClicked()

    您还可以阅读effbot.org 了解有关 Tkinter 回调的更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多