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()