1.写在前面
最近在写实验,有用到Python自带的GUI库Tkinter,实现了一个简单而实用的登录界面。今天来进行一个简单的分享,包括了Tkinter的基础使用,还涉及到了如何创建按钮、文本框以及如何处理按钮点击事件等方面的内容。希望这个分享能够对和我一样的初学者有所帮助,从而更轻松地实现自己的GUI应用。
2.代码展示
前期准备,导入我们所需要的包
from tkinter import *
from tkinter import ttk
from tkinter.messagebox import showerror, showinfo
提前设置好账户名和密码(此处只是为了初学者的方便来在此处进行设置,后续可以将两者设为变量从数据库中读取)
USENAME = 'zhangsan'
PASSWORD = '123'
设置一个窗口居中方法
class Center: # 窗口居中方法
@staticmethod
def show_center(self_tk):
sw = self_tk.winfo_screenwidth()
sh = self_tk.winfo_screenheight()
ww = 600
wh = 500
x = (sw - ww) / 2
y = (sh - wh) / 2
self_tk.geometry("%dx%d+%d+%d" % (ww, wh, x, y))
定义登录函数以及判断
def login(): # 设置登录窗口
login_tk = Tk()
login_tk.title('用户登录')
Center.show_center(login_tk)
login_tk.resizable(False, False) # 不可调整大小和最大化
# 字样
no_label = Label(login_tk, text='账号')
name_label = Label(login_tk, text='密码')
no_label.place(relx=0.17, rely=0.3, relwidth=0.2, relheight=0.05)
name_label.place(relx=0.17, rely=0.47, relwidth=0.2, relheight=0.05)
username = StringVar()
password = StringVar()
# 输入框
username_input = ttk.Entry(login_tk, textvariable=username, font=('Microsoft yahei', 11))
password_input = ttk.Entry(login_tk, textvariable=password, font=('_Times New Roman', 11) ,show='●')
username_input.place(relx=0.25, rely=0.35, relwidth=0.5, relheight=0.05)
password_input.place(relx=0.25, rely=0.52, relwidth=0.5, relheight=0.05)
# 判断
def user():
username_txt = username.get()
password_txt = password.get()
# 账号密码
if username_txt == USENAME and password_txt == PASSWORD:
print('登录成功!')
showinfo(title='提示', message='登录成功')
login_tk.destroy()
# class_.Main.main() ,此处换成你所需要调用的函数即可
elif len(username_txt) == 0:
showerror(title='提示', message='请输入账号!')
login_tk.mainloop()
elif len(password_txt) == 0:
showerror(title='提示', message='请输入密码!')
login_tk.mainloop()
elif username_txt != USENAME or password_txt != PASSWORD:
showerror(title='提示', message='请输入正确的账号与密码!')
login_tk.mainloop()
else:
login_tk.quit()
login_btn = ttk.Button(login_tk, text='登 录', command=lambda: [user()])
login_btn.place(relx=0.4, rely = 0.72, relwidth = 0.2, relheight = 0.07)
# 按钮事件
def btn_bind(self):
user()
# 绑定按钮
login_tk.bind("<Return>", btn_bind) # 绑定回车键
login_tk.mainloop()
最后就是简单的调用啦!
if __name__ == '__main__':
login()
下面进行效果展示:
知不足而奋进,望山远而力行,希望这篇文章能够对你有所帮助!