登录框用户界面
1. Entry 输入框
-
Tkinter中的Entry组件是一个单行文本输入框,用于接收用户在GUI应用程序中输入的信息。它可以被设置为只读或可编辑状态,可以设置输入的文本格式及长度限制等。当用户输入完成后,可以通过调用Entry组件的get()方法获取用户输入的内容。
import tkinter as tk # 导入使用的工具包 root = tk.Tk()# 创建根窗口 #Label标签主要是,分别用于显示“用户名”和“密码”,并将其放置在根窗口 tk.Label(root, text="用户名:").grid(row=0) tk.Label(root, text="密码:").grid(row=1) #创建两个输入框 Entry,分别用于输入用户名和密码,并将它们放置在根窗口上 e1 = tk.Entry(root) e2 = tk.Entry(root) # 1.1 将输入框 e1 和 e2 放置在根窗口上(第 0 行第 1 列和第 1 行第 1 列),并设置它们的 padding e1.grid(row=0, column=1, padx=10, pady=5) e2.grid(row=1, column=1, padx=10, pady=5) #循环运行窗口 tk.mainloop()
2. 设置输入框加密
-
相当于输入密码的时候 , 不显示密码.
#Label标签主要是,分别用于显示“用户名”和“密码”,并将其放置在根窗口 tk.Label(root, text="用户名:").grid(row=0) tk.Label(root, text="密码:").grid(row=1) #创建两个输入框 Entry,分别用于输入用户名和密码,并将它们放置在根窗口上 e1 = tk.Entry(root) e2 = tk.Entry(root,show="*")
3. 使用Button按钮
-
Tkinter中的Button组件是一个按键, 用于接收用户在GUI应用程序中的鼠标点击操作。
-
它可以显示文本、图片或同时显示文本和图片,也可以被设置为不同的状态
- 当用户单击按钮时,可以通过调用Button组件的command参数 指定的函数来处理相应的事件。
def callback(): print("我被调用了") res.config(text='登录成功') #确认按钮的设计 column相当于列 #使用一个新的组件 Button 按钮 columnspan居中 #添加一个触发的事件 当点击确定时候 ,就会调用方法command =callback btn = tk.Button(root, text="确认", command=callback).grid(columnspan=2) res = tk.Label(root, text="") res.grid(row=5, column=1, columnspan=1)
- 当用户单击按钮时,可以通过调用Button组件的command参数 指定的函数来处理相应的事件。
4. 获取Entry中的输入
-
使用的方法是
get()方法
def callback(): #6如何获取用户名和密码 Entry.get() e1.get() #分支结构进行处理 if e1.get()=="王一博" and e2.get()=="123": print(e1.get(),e2.get())#用户名和密码打印到控制台 else: print(e1.get(), e2.get()) # 3. 确认按钮的设计 column相当于列 # 使用一个新的组件 Button 按钮 columnspan居中 # 添加一个触发的事件 当点击确定时候 ,就会调用方法command =callback tk.Button(root, text="确定",command=callback).grid(columnspan=2)
5. messagebox 使用
- 消息提示框的使用.注意使用时需要导入包
from tkinter import messagebox
def callback(): #6如何获取用户名和密码 Entry.get() e1.get() #分支结构进行处理 if e1.get()=="王一博" and e2.get()=="123": tk.messagebox.showinfo("title弹窗","登录成功") else: tk.messagebox.showinfo("title弹窗", "登录失败")
6. 完整代码
- 完整代码
# 导入包 import tkinter as tk #导入弹窗的包导入 from tkinter import messagebox # 返回一个根目录窗口 root = tk.Tk() # 1. 设计登录框的布局,主要是将文字和图片 # 显示在我们的布局窗口上 # gird 是布局的意思.row 指的是行数. # windows 复制和黏贴 ctrl+c ctrl+v tk.Label(root, text="用户名: ").grid(row=0) tk.Label(root, text="密码: ").grid(row=1) # 2.输入框的设计 # 2.1 加密的参数 show="符号" e1 = tk.Entry(root) e2 = tk.Entry(root, show="*") # 提问:加密符号使用#号可以么? # 2.1 设计Entry的布局,注意行的row e1.grid(row=0, column=1, padx=10, pady=5) e2.grid(row=1, column=1, padx=10, pady=5) # 4.方法 def callback(): #6如何获取用户名和密码 Entry.get() e1.get() #分支结构进行处理 if e1.get()=="袁子涵" and e2.get()=="123": #print("我被调用了...") print(e1.get(),e2.get())#用户名和密码打印到控制台 #输出到gui的界面上, res.config(text="登录成功") #7 信息盒子弹窗 messagebox() tk.messagebox.showinfo("吴琼小弹窗","登录成功") else: print(e1.get(), e2.get()) res.config(text="登录失败") tk.messagebox.showinfo("吴琼小弹窗", "登录失败") # 3. 确认按钮的设计 column相当于列 # 使用一个新的组件 Button 按钮 columnspan居中 # 添加一个触发的事件 当点击确定时候 ,就会调用方法command =callback tk.Button(root, text="确定", command=callback).grid(columnspan=2) # 5. 将输出的结果显示到我们的root上 res = tk.Label(root, text="") # text="" 随机获取 #布局显示位置 res.grid(row=5,column=1,columnspan=1) # 展示窗口 root.mainloop()
7. 扩展设计
-
根据图设计下面代码自己完成
def callback():
if e1.get() == '' and e2.get() == '':
tk.messagebox.showinfo('提示','请输入真实信息,否则测试无效!')
else:
tk.messagebox.showinfo('提示','警方已经获取到你的信息和位置,投案自首将是你唯一的出路!')