【问题标题】:Python - Pass the value of 'tk.Entry' value to a functionPython - 将“tk.Entry”值的值传递给函数
【发布时间】:2022-01-22 04:07:19
【问题描述】:

这里是loginPage函数代码

import tkinter as tk

def loginPage(self):
    login_screen = tk.Tk()
    login_screen.title("Login")
    login_screen.geometry("300x250")
    tk.Label(login_screen, text="Please enter login details").pack()
    tk.Label(login_screen, text="").pack()
    tk.Label(login_screen, text="Username").pack()
    self.username_login_entry = tk.Entry(login_screen, textvariable="username")
    self.username_login_entry.pack()
    tk.Label(login_screen, text="").pack()
    tk.Label(login_screen, text="Password").pack()
    self.password_login_entry = tk.Entry(login_screen, textvariable="password", show='*')
    self.password_login_entry.pack()
    tk.Label(login_screen, text="").pack()
    tk.Button(login_screen, text="Login", width=10, height=1, command=lambda x=self.username_login_entry.get(), y=self.password_login_entry.get(): mainLogin().verifyLogin(x, y)).pack()
    login_screen.mainloop()

这是我的验证登录功能代码

    def verifyLogin(self, uname, pword):

    try:
        import python_to_postgres as pp
        global checkUserEst
        print('user nad pass!!! ', uname, pword)
        #ETO UNG MAY PROBLEM DIKO MAKIHA UNG VALUE MULA TKINTER ENTRY
        self.checkUser = pp.pyPostgre().loginAuth(uname, pword)

还有其他方法可以将条目小部件的值传递给其他函数吗?

【问题讨论】:

  • 您不需要具有默认值的 lambda 参数。而是在函数内部调用那些.get()

标签: python tkinter


【解决方案1】:

我使用 lambda 修复了它。请看下面的代码。

command=lambda a=0, b=0: mainLogin().verifyLogin(self.username_login_entry.get(), self.password_login_entry.get())

【讨论】:

  • ab 这两个参数有什么意义?它们根本没有必要。
  • 我不知道它是如何工作的,但是每当我将 lambda 与需要参数的函数一起使用时,它不会立即执行它将等待按钮被按下。
猜你喜欢
  • 2012-05-07
  • 2013-10-12
  • 1970-01-01
  • 2019-12-11
  • 2013-06-25
  • 1970-01-01
  • 2018-04-04
相关资源
最近更新 更多