python - 登录屏幕哪里出了问题(Def Login)
问题描述
我正在做一些学校工作,我正在开发一个汽车租赁应用程序,我正在研究基础知识并在我前进的过程中学习。到目前为止,该应用程序的其余部分都在工作,但我正在研究为什么我的用户登录屏幕无法正常工作。
我已经尝试在我的注册屏幕中实现一些类似的代码(它可以完美地工作)但是代码会启动,但是当我按下登录时我没有显示任何窗口,这可能是一个简单的错误,但这可能是由于我缺乏经验哈哈,我也尝试过使用全局变量,但这就是我觉得我缺乏了解全局变量以及在哪里适当使用它们的最知识的地方。
import tkinter as tk
def register():
top = tk.Toplevel(root) # create a GUI window
top.title("Register")
top.geometry("400x350")
username = tk.StringVar(top)
password = tk.StringVar(top)
email = tk.StringVar(top)
tk.Label(top, text="Please enter your details below", bg="red").pack()
tk.Label(top, text="Email * ").pack()
tk.Entry(top, textvariable=email).pack(padx=10, pady=10)
tk.Label(top, text="Username * ").pack()
tk.Entry(top, textvariable=username).pack(padx=10, pady=10)
tk.Label(top, text="Password * ").pack()
tk.Entry(top, textvariable=password, show='*').pack(padx=10, pady=10)
tk.Button(top, text="Register", width=10, height=2, bg="red").pack()
def login():
login_screen = tk.Toplevel(root)
login_screen.title("Login")
login_screen.geometry("300x250")
username_verify = tk.StringVar(login_screen)
password_verify = tk.StringVar(login_screen)
tk.Label(login_screen, text="Please enter details below to login").pack()
tk.Label(login_screen, text="").pack()
global username_login_entry
global password_login_entry
tk.Label(login_screen, text="Username * ").pack()
username_login_entry = tk.Entry(login_screen, textvariable=username_verify)
username_login_entry.pack()
tk.Label(login_screen, text="").pack()
tk.Label(login_screen, text="Password * ").pack()
password_login_entry = tk.Entry(login_screen, textvariable=password_verify, show='*')
password_login_entry.pack()
tk.Label(login_screen, text="").pack()
tk.Button(login_screen, text="Login", width=10, height=1, command=login_verify).pack()
root = tk.Tk()
root.geometry("700x450")
root.title("Account Login")
root.wm_iconbitmap('py.ico')
tk.Label(root, text="Login or Register", bg="red", width="300", height="2", font=("Arial Black", 13,)).pack()
tk.Button(root, text="Login", height="4", width="30", font=("Arial Black", 13,)).pack(padx=15, pady=15)
tk.Button(root, text="Register", height="4", width="30", font=("Arial Black", 13,), command=register).pack()
root.mainloop()
在这段代码中,我特别查看了代码的 Def Login 部分,但我提供了我所有的行作为上下文,以帮助您了解是否存在链接到其他函数的任何问题。预期的输出将是单击时登录窗口打开的位置。
解决方案
您已经正确地完成了定义,但是您从未在任何地方使用过该功能。注意register
函数是如何通过这一行调用的
tk.Button(root, text="Register", height="4", width="30", font=("Arial Black", 13,), command=register).pack()
command=register
是按下按钮时调用该功能的原因。但是,您没有与登录按钮关联的命令。
tk.Button(root, text="Login", height="4", width="30", font=("Arial Black", 13,)).pack(padx=15, pady=15)
注意缺少command
属性。我相信你现在知道该怎么做:)
login
在你的定义中记住一件事。在最后一行,您正在调用command=login_verify
. 我假设您只是将它作为稍后将要处理的函数的占位符,但这会引发异常,只是让您知道。
推荐阅读
- c - 共享命名的 POSIX 信号量
- python - 如何在 Windows >= Win7 上以 kiosk 模式运行 python PyQt5 应用程序
- c++ - 推力::binary_search 在运行时失败,执行策略指定用户流
- asp.net - 在 Asp.net MVC 5 应用程序中将 AngularJS 升级到 Angular 6
- java - 如何在 AlertDialog 中添加重新启动
- shell - 从 oracle 应用程序运行时访问 DB 目录文件夹的 Shell 脚本程序
- html - 仅在资源管理器中的 wordpress 网站上的 html 图像问题
- python - 如何使用 django-tables2 显示图像
- ios - 从 EventStore 检索日历事件返回 nil
- sql - 使用带有歧义连接的查找表的递归视图