Python如何将函数if语句链接到Tkinter标签?
代码如下:Python如何将函数if语句链接到Tkinter标签?,python,tkinter,passwords,Python,Tkinter,Passwords,代码如下: from tkinter import * import glob import os from PIL import Image, ImageTk, ImageGrab import tkinter as tk import pyautogui import datetime import sys from tkinter import scrolledtext root = tk.Tk() root.title("SIGN OFF") root.minsize(840, 800
from tkinter import *
import glob
import os
from PIL import Image, ImageTk, ImageGrab
import tkinter as tk
import pyautogui
import datetime
import sys
from tkinter import scrolledtext
root = tk.Tk()
root.title("SIGN OFF")
root.minsize(840, 800)
mainframe = tk.Frame(root)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
mainframe.pack(pady=100, padx=100)
username = Label(mainframe, text = "Username").pack()
usr = Entry(mainframe).pack()
password = Label(mainframe, text = "Password").pack()
pwd = Entry(mainframe).pack()
submit = Button(mainframe, text = "Log in").pack()
def askUser():
username = input("Username: ")
password = input("Password: ")
if username == "Ed" and password == "true":
app()
if username == "buxton" and password == "logix":
app()
else:
root.destroy()
root.mainloop()
这将提示我一个带有用户名和密码的窗口
如何将显示窗口中的用户名输入链接到askUser()
函数用户名,以及如何使用密码将用户名输入链接到函数用户名
如果我只使用这段代码并运行它:
def askUser():
username = input("Username: ")
password = input("Password: ")
if username == "Ed" and password == "true":
app()
if username == "buxton" and password == "logix":
app()
else:
print("failed")
命令提示符将是输入密码和用户名的主屏幕,但我需要在窗口上获取它
这是一个小项目,如果有人对这个项目的安全性有任何意见,我并不真的担心,但愿意听取建议!:) 首先:不要这样做
usr = Entry().pack()
因为它将None
分配给usr
,因为pack()
总是返回None
,然后您就无法访问Entry
来获取用户名及其密码。你必须分两步来做
usr = Entry()
usr.pack()
对于标签和按钮,您甚至可以跳过变量,因为您不需要它们
第二:您可以使用
command=function\u name
访问功能按钮。它必须是没有()
(所谓“回调”
)的名称
单击按钮后,mainloop
将运行ask\u user()
在ask_user
中,您可以使用.get()
完整代码:
import tkinter as tk
# --- functions ---
def ask_user():
username = usr.get()
password = pwd.get()
if username == "Ed" and password == "true":
app()
if username == "buxton" and password == "logix":
app()
else:
root.destroy()
# --- main ---
root = tk.Tk()
mainframe = tk.Frame(root)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
mainframe.pack(pady=100, padx=100)
tk.Label(mainframe, text="Username").pack()
usr = tk.Entry(mainframe)
usr.pack()
tk.Label(mainframe, text="Password").pack()
pwd = tk.Entry(mainframe)
pwd.pack()
tk.Button(mainframe, text="Log in", command=ask_user).pack()
root.mainloop()
第一:不要做
usr=Entry().pack()
,因为它将None
而不是Entry
分配给usr
,因为pack()
总是返回None
,然后你就没有权限访问Entry
来获取用户名和密码。您必须分两个步骤进行编辑,Im I位于您的右行?不要更改有问题的代码,因为稍后它将不适合回答。添加新代码和更改。我使用计算机和不同的语言将近30年了。当我开始使用Python时,我已经知道如何用许多其他语言编写代码——所以我只需要谷歌就可以找到我试图解决的问题的例子。主要是我自己使用的文件/图像/数据/网页的问题。tkinter
也是如此。目前我有时会在忘记某事时检查。这是旧的和不完整的,但它仍然是我最有用的一页。
username = usr.get()
password = pwd.get()
import tkinter as tk
# --- functions ---
def ask_user():
username = usr.get()
password = pwd.get()
if username == "Ed" and password == "true":
app()
if username == "buxton" and password == "logix":
app()
else:
root.destroy()
# --- main ---
root = tk.Tk()
mainframe = tk.Frame(root)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
mainframe.pack(pady=100, padx=100)
tk.Label(mainframe, text="Username").pack()
usr = tk.Entry(mainframe)
usr.pack()
tk.Label(mainframe, text="Password").pack()
pwd = tk.Entry(mainframe)
pwd.pack()
tk.Button(mainframe, text="Log in", command=ask_user).pack()
root.mainloop()