如何利用Python编写一个用户登录窗口?

这篇具有很好参考价值的文章主要介绍了如何利用Python编写一个用户登录窗口?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是室节上!今天我来教大家如何用Python编写一个用户登录窗口。

窗口的样子:

首先,我们可以想一下,一个用户登录窗口通常包含哪些东西。是不是包含有这些东西:

1.文本:

 一个窗口如果没有文本,那么用户就不知道这是什么窗口。因此,这个窗口应包含有“账号”和“密码”两个文本。

2.输入框:

这个窗口如果没有输入框,那么用户就无法输入“账号”和“密码”,程序也就无法获取用户的“账号”和“密码”。因此,在这两个文本后面各添上一个单行输入框。

3.按钮:

这个窗口如果没有按钮,那么这个程序就无法了解用户是否已完成输入。因此,我们要在它们的下面添上一个按钮:登录。


程序的逻辑:

然后,我们思考一下这个程序的流程是怎样的。

是不是这样的?如何利用Python编写一个用户登录窗口?


安装PySimpleGUI库:

再接着,安装PySimpleGUI库(用于GUI设计):

1.同时按住Win + R,在弹出的窗口输入“cmd”,再按enter键。 

如何利用Python编写一个用户登录窗口?

2.在弹出的小黑框(学名叫命令提示符) 里输入“pip install PySimpleGUI -i https://pypi.douban.com/simple/”,并按enter,再等一会儿,PySimpleGUI就安装好了。

如何利用Python编写一个用户登录窗口?

(注意:对于PySimpleGUI这个库怎么用,请参考这篇文章)


写代码:

接着,我们就可以正式进入到写代码环节了。

1.导入库

既然我们要使用这个库,我们就先把这个库导入:

import PySimpleGUI as sg # as sg的意思是把PySimpleGUI的用法重命名为sg,然后代码中如果出现PySimpleGUI,就会报错。

2.确定好正确的用户名和密码

# 用字典镶嵌列表的方式把用户名和它们各自的密码定好
User1 = {'用户名': 'fggf', '密码': '123'}
User2 = {'用户名': 'ghh23456', '密码': '456'}
User_List = [User1, User2]

3.设定窗口的内容

# 把这个窗口里的内容设定好(layout也是一个变量)
layout = [
    [sg.T('用户名', size=6), sg.In('', font=20, key='user')],
    [sg.T('密码', size=6), sg.In('', font=20, key='pwd')],
    [sg.B('确认'), sg.B('取消')]
]

4.设定窗口的参数

# 给窗口起个名(就是它的标题),再定一下它的参数(窗口的内容为刚刚设好的变量layout,字体就用微软雅黑,20号大小的字)
window = sg.Window('登录窗口', layout, font=("微软雅黑", 20))

5.实现功能

接下来就是功能部分了,功能部分是重中之重:

# 为了实现监听用户的动作的效果,所以就重复地获取窗口的事件和值,重复地判断此时应该干什么
while True:
    # event记录着这个窗口一切的事件(如:用户点击按钮),values记录着这个窗口中输入框的值(即用户输入的内容)
    event, values = window.read()
    # 如果用户点击了“确认”这个按钮,我们的这个程序就应该开始判断用户输入的内容是否正确,并通过弹窗的方式告诉用户
    if event == "确认":
        # 在User_List遍历user这个变量
        for user in User_List:
            # values['user']指的是第一个输入框的值(用户输入的用户名),user['用户名'](user在遍历的时候是个字典)指的是正确的用户名
            # values['pwd']指的是第二个输入框的值(用户输入的密码),user['密码']指的是正确的密码
            if values['user'] == user['用户名'] and values['pwd'] == user['密码']:
                a = "输入正确"
            else:
                b = "输入错误"
        # 如果输入错误,则a会未命名,而发生名称错误(NameError),所以要捕捉名称错误
        try:
            if a == "输入正确":
                sg.Popup(a)
                # 用户既然输入正确,那就行了,可以退出循环(break)并结束进程了
                break
        except NameError:
            sg.Popup(b)
            # 用户输入错误,我们应该继续让用户输入内容,而并非是结束进程
    # 如果用户点击了x号(WINDOW_CLOSED指的是窗口右上角的x号,它是一个常量)或点击了“取消”,就退出循环体,而之后又没有代码,就结束进程
    if event == sg.WINDOW_CLOSED or event == '取消':
        break

6.运行测试

最后,运行一下试试,是不是看到了这样的一个窗口:

如何利用Python编写一个用户登录窗口?

 随便输入一下,看看会怎样:

如何利用Python编写一个用户登录窗口?

再认认真真地输入一下,看看会怎样:

如何利用Python编写一个用户登录窗口? 如何利用Python编写一个用户登录窗口?

7.遇到问题,完善细节

好了,这个程序基本上就编写好了,但还一个问题:密码不应该会变成*吗?

于是,我就给密码的这个输入框加了一个参数:

    [sg.T('密码', size=6), sg.In('', font=20, key='pwd', password_char='*')],

 就变成了这样:

如何利用Python编写一个用户登录窗口?

如何利用Python编写一个用户登录窗口?

如何利用Python编写一个用户登录窗口?

尽管用户在第二个输入框中所输入的内容会变成*,但程序依然可以判断用户输入的内容是否正确。


完整代码:

import PySimpleGUI as sg  # as sg的意思是把PySimpleGUI的用法重命名为sg,然后代码中如果出现PySimpleGUI,就会报错。

# 用字典镶嵌列表的方式把用户名和它们各自的密码定好
User1 = {'用户名': 'fggf', '密码': '123'}
User2 = {'用户名': 'ghh23456', '密码': '456'}
User_List = [User1, User2]

# 把这个窗口里的内容设定好(layout也是一个变量)
layout = [
    [sg.T('用户名', size=6), sg.In('', font=20, key='user')],
    [sg.T('密码', size=6), sg.In('', font=20, key='pwd', password_char='*')],
    [sg.B('确认'), sg.B('取消')]
]

# 给窗口起个名(就是它的标题),再定一下它的参数(窗口的内容为刚刚设好的变量layout,字体就用微软雅黑,20号大小的字)
window = sg.Window('登录窗口', layout, font=("微软雅黑", 20))

# 为了实现监听用户的动作的效果,所以就重复地获取窗口的事件和值,重复地判断此时应该干什么
while True:
    # event记录着这个窗口一切的事件(如:用户点击按钮),values记录着这个窗口中输入框的值(即用户输入的内容)
    event, values = window.read()
    # 如果用户点击了“确认”这个按钮,我们的这个程序就应该开始判断用户输入的内容是否正确,并通过弹窗的方式告诉用户
    if event == "确认":
        # 在User_List遍历user这个变量
        for user in User_List:
            # values['user']指的是第一个输入框的值(用户输入的用户名),user['用户名'](user在遍历的时候是个字典)指的是正确的用户名
            # values['pwd']指的是第二个输入框的值(用户输入的密码),user['密码']指的是正确的密码
            if values['user'] == user['用户名'] and values['pwd'] == user['密码']:
                a = "输入正确"
            else:
                b = "输入错误"
        # 如果输入错误,则a会未命名,而发生名称错误(NameError),所以要捕捉名称错误
        try:
            if a == "输入正确":
                sg.Popup(a)
                # 用户既然输入正确,那就行了,可以退出循环(break)并结束进程了
                break
        except NameError:
            sg.Popup(b)
            # 用户输入错误,我们应该继续让用户输入内容,而并非是结束进程
    # 如果用户点击了x号(WINDOW_CLOSED指的是窗口右上角的x号,它是一个常量)或点击了“取消”,就退出循环体,而之后又没有代码,就结束进程
    if event == sg.WINDOW_CLOSED or event == '取消':
        break

这是小编的第一篇文章,如有不足之处请指出,谢谢! 文章来源地址https://www.toymoban.com/news/detail-453895.html

到了这里,关于如何利用Python编写一个用户登录窗口?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面对洪水困境,如何利用Python编写天气预报程序?

    洪水是一种自然灾害,给人们的生活和财产带来极大的威胁。在遭遇洪灾时,及时了解天气预报成为保护自身安全的关键。而如何利用Python编写一个简单但功能强大的天气预报程序,为我们提供准确的天气信息呢?本文将介绍一种方法来实现这一目标。 首先,我们需要安装一

    2024年02月14日
    浏览(38)
  • 如何使用Python编写一个代理池测试工具

    部分数据来源: ChatGPT 背景:         在进行网络爬虫时,我们经常需要使用代理池来防止IP被网站禁封。代理池是一个保存多个代理IP地址的数据库,我们可以从数据库中随机选择一个代理地址来进行网络请求,避免过多请求来自同一个IP地址。 为了提高爬虫程序的稳定

    2024年02月08日
    浏览(41)
  • C语言:编写代码实现,模拟用户登录情景,并且只能登录三次

    编写代码实现, 模拟用户登录情景 ,并且 只能登录三次 。                   只 允许输入三次密码 , 如果 密码正确 则 提示登录成功 , 如果 三次均输入错误 ,则 退出程序 。                       =========================================================================          

    2024年02月08日
    浏览(35)
  • 学会在Android Studio使用窗口跳转实现用户登录

    基于 Empty Activity 模板创建安卓应用 将背景图片 background.png 拷贝到 drawable 目录   基于 Empty Activity 模板创建 LoginActivity ,要生成对应的布局文件,并且要设置为启动Activity 切换到Design视图查看预览效果 (1)输入用户名与密码正确的情况 - 用户名:howard - 密码:903213 (2)输入

    2023年04月15日
    浏览(59)
  • vue脚手架+elementUI,实现登录用户时的Loading...窗口

    为了全局通用控制此标签,所以我建议把他放到App.vue文件中 说到全局通用,肯定少不了全局变量 发送请求时使用 当我们在login登陆后会跳转到aboutMe组件,所以Login组件会被销毁,这里就体现了全局变量的好处 在此组件加载成功时就证明登录成功了,我们做个2秒缓冲然后直

    2024年02月04日
    浏览(41)
  • C++,使用Qt设计一个登录窗口

    要求如下: 1、给窗体改变名称并设置窗口图标、尺寸固定 2、中间放log图 3、用户名和密码使用图片完成 4、账户用明文模式,密码用密文模式 5、点击登录后,将界面上的用户名和“admin”比较,密码和“123456”比较,如果匹配成功,则输出登录成功,如果匹配失败,则输出

    2024年02月12日
    浏览(43)
  • Python小白如何利用GPT4快速开发一个网站!

    这个是一个全栈的项目,麻雀虽小,五脏俱全! 全程都是利用gpt4进行辅助编程搞定的。第一版其实非常快,大概30分钟就搞定了,后续就是不断的添砖加瓦,增加功能和优化UI。 其实很多小白都在说要学Python,也想学Python,但是基本买了一本厚厚的书或者拿了一份资料之后就

    2024年02月09日
    浏览(40)
  • Android studio编写一个简单的登录界面

    1首先先创建一个空的activity项目,接着设置自己的项目名称,勾选上lacuncher 创建成功后点开 manifests 把刚刚创建的文件名下面的 intent-filter 这一行全部删除 然后点开res,复制一张图片,右键drawable点击粘贴,这里放的是图片资源,用于放置登录头像 然后点开layout文件,开始编

    2024年04月15日
    浏览(44)
  • Django用户认证: 利用Django Auth模块实现用户注册、登录与登出

    用户登录注册属于用户认证的一部分,Django内置了一套用户认证体系,使用起来比较方便,而且支持用户定制和拓展,足以满足任何复杂的业务需求。 Django框架中,用户权限管理被划分为三个层次: 用户 :系统使用者,拥有自己的权限。可被一个或多个用户组包含。 用户组

    2023年04月20日
    浏览(58)
  • 用python简易编写创建窗口

    # 创建Window窗口.py # 窗口属性 # 显示窗口(消息循环) 代码如下:  

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包