Python Tkinter实现登录界面教程

闻溪
闻溪
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍如何使用Python3.6.5及内置Tkinter库开发图形化登录界面。内容涵盖环境配置、窗口创建、组件布局(Label、Entry、Button)及事件响应机制,并提供完整的代码示例与效果展示,适合Python初学者快速上手GUI开发。

导言与开发环境

导言篇

本教程基于Python 3.6.5环境进行演示。

所选用的GUI编程库为tkinter。

自Python 2.5版本起,tkinter已作为标准库内置,无需额外安装。

相较于其他Python GUI框架,tkinter更易于入门和上手。

登录界面代码实现

代码篇

以下是系统登录界面的实现代码。


 import tkinter 
from tkinter import messagebox
class Login(object): 
 def __init__(self): 
  # 创建主窗口,用于容纳其它组件 
  self.root = tkinter.Tk() 
  # 给主窗口设置标题内容 
  self.root.title("影视资源管理系统(离线版)") 
  self.root.geometry('450x300') 
  #运行代码时记得添加一个gif图片文件,不然是会出错的
  self.canvas = tkinter.Canvas(self.root, height=200, width=500)#创建画布 
  self.image_file = tkinter.PhotoImage(file='welcome_1.gif')#加载图片文件 
  self.image = self.canvas.create_image(0,0, anchor='nw', image=self.image_file)#将图片置于画布上 
  self.canvas.pack(side='top')#放置画布(为上端) 
  #创建一个`label`名为`Account: ` 
  self.label_account = tkinter.Label(self.root, text='Account: ') 
  #创建一个`label`名为`Password: ` 
  self.label_password = tkinter.Label(self.root, text='Password: ') 
  # 创建一个账号输入框,并设置尺寸 
  self.input_account = tkinter.Entry(self.root, width=30) 
  # 创建一个密码输入框,并设置尺寸 
  self.input_password = tkinter.Entry(self.root, show='*', width=30) 
  # 创建一个登录系统的按钮 
  self.login_button = tkinter.Button(self.root, command = self.backstage_interface, text = "Login", width=10) 
  # 创建一个注册系统的按钮 
  self.siginUp_button = tkinter.Button(self.root, command = self.siginUp_interface, text = "Sign up", width=10) 
 # 完成布局 
 def gui_arrang(self): 
  self.label_account.place(x=60, y= 170) 
  self.label_password.place(x=60, y= 195) 
  self.input_account.place(x=135, y=170) 
  self.input_password.place(x=135, y=195) 
  self.login_button.place(x=140, y=235) 
  self.siginUp_button.place(x=240, y=235) 
 # 进入注册界面 
 def siginUp_interface(self): 
  # self.root.destroy() 
  tkinter.messagebox.showinfo(title='影视资源管理系统', message='进入注册界面')  
 # 进行登录信息验证 
 def backstage_interface(self): 
  account = self.input_account.get().ljust(10," ") 
  password = self.input_password.get().ljust(10," ") 
  #对账户信息进行验证,普通用户返回user,管理员返回master,账户错误返回noAccount,密码错误返回noPassword 
  verifyResult = verifyAccount.verifyAccountData(account,password) 
  if verifyResult=='master': 
   self.root.destroy() 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='进入管理界面') 
  elif verifyResult=='user': 
   self.root.destroy() 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='进入用户界面') 
  elif verifyResult=='noAccount': 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='该账号不存在请重新输入!') 
  elif verifyResult=='noPassword': 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='账号/密码错误请重新输入!') 
def main(): 
 # 初始化对象 
 L = Login() 
 # 进行布局 
 L.gui_arrang() 
 # 主程序执行 
 tkinter.mainloop() 
if __name__ == '__main__': 
 main() 

界面效果展示

效果篇

Tkinter基础语法详解

语法介绍

环境配置:

需安装Python 3.6.5,可从官网下载获取。

tkinter包:Python 2.5之后版本均自带,直接导入即可使用。

基本语法:

self.root = tkinter.Tk()

上述代码创建了一个名为root的窗口对象。root前的self.是面向对象编程中的实例引用,若对面向对象概念不熟悉,建议查阅相关文档。


self.root.title("影视资源管理系统(离线版)") 
self.root.geometry('450x300')

接下来为窗口root设置标题,并配置窗口的基本属性。


self.canvas = tkinter.Canvas(self.root, height=200, width=500)#创建画布 
self.image_file = tkinter.PhotoImage(file='welcome_1.gif')#加载图片文件 
self.image = self.canvas.create_image(0,0, anchor='nw', image=self.image_file)#将图片置于画布上 
self.canvas.pack(side='top')#放置画布(为上端)

若希望提升界面美观度,可以尝试创建画布(Canvas)组件,如下所示。

此处对背景图片进行了透明化处理,处理工具可参考文中提到的网站,该工具表现良好。


#创建一个`label`名为`Account: ` 
self.label_account = tkinter.Label(self.root, text='Account: ') 
#创建一个`label`名为`Password: ` 
self.label_password = tkinter.Label(self.root, text='Password: ')

此处创建的是Label组件,其作用类似于界面中的“Account:”与“Password:”文本标签。

.Label(A, B):参数A指定Label所属的窗口,参数B定义用户可见的文本内容(通过text="LabelName"指定)。

.Button(A, B, text='', [width='', height='']):参数A指定按钮所属的窗口主体,参数B指定按钮绑定的响应事件(如command = self.siginUp_interface)。该事件用于注册或登录并进入后台,command后需接具体的响应函数。

.Entry(A):输入框组件,用法参考前述.Label(),如有疑问可在评论区留言。

.place(x="", y=""):用于设置窗口部件在界面中的位置坐标。

登录界面的基础介绍至此结束。后续将更新登录界面的响应机制,如有疑问欢迎留言,我会及时回复。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表