Tkinter 密码系统

新手上路,请多包涵

我对在 python 中使用 Tkinter 还很陌生,我想知道是否有人可以帮助我使用我的密码系统。在检查用户输入的用户名与实际用户名时,我很挣扎,此时我不太在意密码部分,因为一旦我让用户名部分正常工作,只需稍微调整一下就应该很容易了用户名部分的代码。无论如何,这是我的代码:

 #Toms Password system

import tkinter
from tkinter import *
from tkinter import ttk

username = ("Tom")
password = ("")
usernameguess1 = ("")
passwordguess1 = ("")

#ignore the file writing part,I'll sort this out later.

file = open("userlogondata.txt", "w")
file.write("User Data:\n")

file = open("userlogondata.txt", "r")

def trylogin():
   print ("Trying to login...")
   if usernameguess == username:
       print ("Complete sucsessfull!")
       messagebox.showinfo("-- COMPLETE --", "You Have Now Logged In.",icon="info")
   else:
       print ("Error: (Incorrect value entered)")
       messagebox.showinfo("-- ERROR --", "Please enter valid infomation!", icon="warning")

#Gui Things
window = tkinter.Tk()
window.resizable(width=FALSE, height=FALSE)
window.title("Log-In")
window.geometry("200x150")
window.wm_iconbitmap("applicationlogo.ico")

#Creating the username & password entry boxes
usernametext = tkinter.Label(window, text="Username:")
usernameguess = tkinter.Entry(window)
passwordtext = tkinter.Label(window, text="Password:")
passwordguess = tkinter.Entry(window, show="*")

usernameguess1 = usernameguess

#attempt to login button
attemptlogin = tkinter.Button(text="Login", command=trylogin)

usernametext.pack()
usernameguess.pack()
passwordtext.pack()
passwordguess.pack()
attemptlogin.pack()
#Main Starter
window.mainloop()

我做错了什么不允许我检查用户名是否正确?

原文由 Tom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 577
2 个回答

您需要 get 条目小部件中的值:

  if usernameguess.get() == username:

您还应该导入您需要的内容并在变量名称中使用下划线:

 from tkinter import messagebox, Label, Button, FALSE, Tk, Entry

username = ("Tom")
password = ("")

def try_login():
    print("Trying to login...")
    if username_guess.get() == username:
        messagebox.showinfo("-- COMPLETE --", "You Have Now Logged In.", icon="info")
    else:
        messagebox.showinfo("-- ERROR --", "Please enter valid infomation!", icon="warning")

#Gui Things
window = Tk()
window.resizable(width=FALSE, height=FALSE)
window.title("Log-In")
window.geometry("200x150")

#Creating the username & password entry boxes
username_text = Label(window, text="Username:")
username_guess = Entry(window)
password_text = Label(window, text="Password:")
password_guess = Entry(window, show="*")

#attempt to login button
attempt_login = Button(text="Login", command=try_login)

username_text.pack()
username_guess.pack()
password_text.pack()
password_guess.pack()
attempt_login.pack()
#Main Starter
window.mainloop()

你也永远不会在打开文件后关闭你的文件,所以你很有可能会遇到你意想不到的行为,在你完成文件后关闭你的文件,或者更好地再次使用 with 打开它们。

原文由 Padraic Cunningham 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是一个简单的示例,您可以如何检查:

 from tkinter import *

root = Tk()

username = "abc" #that's the given username
password = "cba" #that's the given password

#username entry
username_entry = Entry(root)
username_entry.pack()

#password entry
password_entry = Entry(root, show='*')
password_entry.pack()

def trylogin(): #this method is called when the button is pressed
    #to get what's written inside the entries, I use get()
    #check if both username and password in the entries are same of the given ones
    if username == username_entry.get() and password == password_entry.get():
        print("Correct")
    else:
        print("Wrong")

#when you press this button, trylogin is called
button = Button(root, text="check", command = trylogin)
button.pack()

#App starter
root.mainloop()

看这个小预览:

在此处输入图像描述

关于入境关于按钮


以这种方式执行此代码不是一个好习惯。推荐面向对象。但我只是想向您展示资源。

原文由 João Paulo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题