Python(Tk)登录界面

夜思红尘 2024-06-14 17:35:14 阅读 85

前言:

什么是tk,python里的tk是什么,能干什么?

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.

Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以通过ttk实现本地窗口风格,并良好地运行在绝大多数平台中。

简单就是一个简单的界面制作,学习这里可以快速学期其他的界面比如说Qt5

这里我们来使用tkinter库来制作一个登录界面

首先我们先制作一个窗口

这里就是一个窗体的代码,运行查看效果

 可以可以,下面我们就来制作一下他的按钮的功能,先是登录按钮的功能

这里我是设置可以登录三次,三次失败后就直接把窗体给退出,就是程序结束。

前提我们要有一个账号和密码存放的文件 

这里我们就定义一个read1函数来获取账号密码等数据 

 这里我们就把登录按钮制作好了,下面我们来制作注册按钮的功能

这里我使用的是把窗口变成透明色,这样我们的用户就看不到登录窗口了

而后我们再写一个函数来实现注册功能

 而后我们运行代码

 最后我们实现一下返回功能就好了

这样我就使用python完成了登录界面的制作

下面是我的代码

# 先导入tkinter, sys, re库from tkinter import *from tkinter import messagebox as msgboximport sysimport re# 这里定义一个Tking类class Tking(object): # 初始化 def __init__(self): self.win = Tk() self.count = 3 # 定义函数来获取数据内容 def read1(self): with open('zhanghao.txt', 'r')as f: file = f.read() return file # 定义函数来实现“登录”按钮的功能 def js(self): # 调用函数获取账号信息 data = self.read1() # 获取用户输入的信息 user = self.username.get() passwd = self.passwd.get() # 使用正则得到我们想要的数据 user1 = re.findall(r'账号:(.*\d?)', data) passwd1 = re.findall(r'密码:(.*\w?)', data) # 这里判断输入错误的次数,等于次就结束程序 if self.count == 0: msgbox.showinfo('警告!', '非法入侵!\n启动自动销毁模式!!!') self.win.quit() sys.exit(0) # 这里对用户的数据和账号数据进行对比 for i in range(len(user1)): if user == user1[i] and passwd == passwd1[i]: msgbox.showinfo('登录', '登录成功!') break else: msgbox.showinfo('失败!', '你还可以登录%s次' % self.count) self.count -= 1 # 定义返回函数,使用“返回”按钮的功能 def fanhui(self): # 使登录窗口恢复颜色,并销毁掉注册窗口 self.win.attributes('-alpha', 1) self.win1.destroy() # 定义函数,实现注册功能 def register(self): # 获取用户输入的数据 username = self.username1.get() passwd1 = self.passwd1.get() passwd2 = self.passwd2.get() if passwd1 == '' or passwd2 == '': return msgbox.showerror('失败!', '不能填空!!!') # 判断用户输入的数据 if passwd1 != passwd2: msgbox.showerror('失败!', '注册失败,两次密码不一致!') else: msgbox.showinfo('成功', '恭喜你注册成功!') with open('zhanghao.txt', 'a')as file: file.write('账号:') file.write(username + '\n') file.write('密码:') file.write(passwd2 + '\n') # 定义函数实现“注册”按钮的功能 def js1(self): # 使用登录界面变成透明色,让用户看不到 self.win.attributes('-alpha', -1) # 定义窗口2,来实现注册窗口 self.win1 = Tk() self.win1.geometry("300x200") self.win1.title("注册") # 定义输入框 self.username1 = Entry(self.win1) self.passwd1 = Entry(self.win1, show="*") self.passwd2 = Entry(self.win1, show="*") self.username1.place(x=110, y=25) self.passwd1.place(x=110, y=75) self.passwd2.place(x=110, y=125) # 定义标签 name4 = Label(self.win1, text="用户名:", font=('宋体', 15), width=10) name4.place(x=1, y=20) name5 = Label(self.win1, text="密码:", font=('宋体', 15), width=10) name5.place(x=1, y=70) name6 = Label(self.win1, text="确认密码:", font=('宋体', 15), width=10) name6.place(x=1, y=120) # 定义按钮 button = Button(self.win1, text="返回", font=('宋体', 10), width=5, command=self.fanhui) button.place(x=250, y=170) button1 = Button(self.win1, text="注册", font=('宋体', 15), width=10, command=self.register) button1.place(x=100, y=160) # 窗口运行 self.win1.mainloop() # 定义函数,创建窗口 def windows(self): self.win.geometry("300x200") self.win.title("登录") # 设置按钮 self.username = Entry(self.win) self.passwd = Entry(self.win, show="*") self.username.place(x=110, y=25) self.passwd.place(x=110, y=75) # 设置标签,实现在窗口上打印“用户名:”等 name1 = Label(self.win, text="用户名:", font=('宋体', 15), width=10) name1.place(x=1, y=20) name2 = Label(self.win, text="密码:", font=('宋体', 15), width=10) name2.place(x=1, y=70) # 设置按钮 button = Button(self.win, text="登录", font=('宋体', 15), width=10, command=self.js) button.place(x=20, y=110) button1 = Button(self.win, text="注册", font=('宋体', 15), width=10, command=self.js1) button1.place(x=140, y=110) # 窗口运行 self.win.mainloop()# 调用类if __name__ == '__main__': tk = Tking() tk.windows()

 运行看看效果

 

代码试用成功!

感谢大家的阅读!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。