第五节 Hacker 登录界面

news2024/9/20 22:33:16

登录框用户界面

1. Entry 输入框

  1. 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. 设置输入框加密

  1. 相当于输入密码的时候 , 不显示密码.

    #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按钮

  1. Tkinter中的Button组件是一个按键, 用于接收用户在GUI应用程序中的鼠标点击操作。

  2. 它可以显示文本、图片或同时显示文本和图片,也可以被设置为不同的状态

    • 当用户单击按钮时,可以通过调用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)
    

4. 获取Entry中的输入

  1. 使用的方法是 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 使用

  1. 消息提示框的使用.注意使用时需要导入包
    • 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. 完整代码

  1. 完整代码
    # 导入包
    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. 扩展设计

  1. 根据图设计下面代码自己完成

    在这里插入图片描述

def callback():
    if e1.get() == '' and e2.get() == '':
        tk.messagebox.showinfo('提示','请输入真实信息,否则测试无效!')
    else:
        tk.messagebox.showinfo('提示','警方已经获取到你的信息和位置,投案自首将是你唯一的出路!')
        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件工程——第3章需求分析知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明! 文章目录 1.需求分析的基本任务? 2.在需求分析阶段结束前,系统分析员应该做什么? 3.对软件系统有哪些综合要求&#xff1f…

基于Java农家乐信息平台设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

渣土车密闭运输识别算法 yolov7

渣土车密闭运输识别系统通过pythonyolov7网络模型技术,渣土车密闭运输识别算法对渣土车的密闭运输情况进行实时监测,检测到有未密闭的渣土车进入工地区域或者行驶在道路上时,渣土车密闭运输识别算法将自动发出警报提示现场管理人员及时采取措…

【openGauss数据库安全策略配置】--略有小成

【openGauss数据库安全策略配置】--略有小成 🔻 一、openGauss数据库安全策略🔰 1.1 账户安全策略⛳ 1.1.1 自动锁定和解锁帐户💧 1.1.1.1 配置failed_login_attempts参数💧 1.1.1.2 配置password_lock_time参数 ⛳ 1.1.2 手动锁定…

MySQL实战解析底层---count(*)这么慢,该怎么办

目录 前言 count(*)的实现方式 用缓存系统保存计数 在数据库保存计数 不同的count用法 前言 在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数这时候你可能会想,一条select count(*) fromt 语句不就…

Spring Boot 如何使用 @ExceptionHandler 注解处理异常消息

Spring Boot 如何使用 ExceptionHandler 注解处理异常消息 在 Spring Boot 应用程序中,异常处理是非常重要的一部分。当应用程序出现异常时,我们需要能够捕获和处理这些异常,并向用户提供有用的错误消息。在 Spring Boot 中,可以…

规则引擎--规则逻辑形如“1 (2 | 3)“的抽象

目录 规则下逻辑表达和条件的抽象表达逻辑的编码和抽象 规则&规则集合条件操作符规则规则执行表达式遍历进行操作符计算添加具体条件的执行 规则执行完成后得到最后的结果 规则下逻辑表达和条件的抽象 对于任何一个规则,包括多个条件,都可以抽象成如…

抽象确实JavaScript

看完上篇的添加事件,我想肯定有一万个黑马在奔腾 明明是照着添加宾语的公式来的,为什么会有报错? 事件不是说可以随便设置吗?但是会出问题 this又是什么关键词? value是啥? 围绕这三大疑问&#xff0c…

LED显示产业如何突破芯片短板

LED显示产业在突破芯片短板方面可以采取以下措施: 研发先进的芯片技术:LED显示芯片的研发是关键。通过投入更多资源和资金,研究机构和企业可以致力于开发更先进、更高效的LED显示芯片技术。这包括改进光电转换效率、提高亮度和色彩表现力等方…

Python基础合集 练习25 (正则表达式)

[0123456789] 普通字符 [0-9]简洁写法 在正则表达式中所有字符类型都有对应的编码 在匹配大写英文字母时,应该是 “”" [a-zA-Z]或[A-Za-z] “”" 元字符… … (.[0-9]{1,3}){3}进行重复三次操作 ^\d{9}$ 使用^和$匹配开始和结束位置,\d表示匹配数字,{9}表示…

【C++篇】C++的动态分配内存

友情链接:C/C系列系统学习目录 知识点内容正确性以C Primer(中文版第五版)、C Primer Plus(中文版第六版)为标准,同时参考其它各类书籍、优质文章等,总结归纳出个人认为较有逻辑的整体框架&…

处理 Python 3.11 弃用的 PySys_SetPath 和 Py_SetProgramName

在C调用matplotlibcpp.h画图时报错,使用的python版本是3.11.3版本。 解决方案:不重要的话,注释该行代码即可。 Python 3.11 弃用 PySys_SetPath 和 Py_SetProgramName。这 PyConfig API 取代了这些功能和其他功能。此提交使用 PyConfig API …

深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识

分类目录:《深入理解深度学习》总目录 《深入理解深度学习——Transformer》系列文章介绍了Transformer,该模型最初被用于机器翻译任务,其出色表现引起了学术界的极大兴趣,其优异的特征提取与语义抽象能力得到了学者的广泛认可&am…

企业做seo有什么好处?SEO 为您的企业带来的 10 大主要优势?

如果您希望建立长期的品牌知名度、扩大目标受众并赚取更多收入,那么搜索引擎优化至关重要。让我们看看 SEO 为您的企业带来的 10 大好处,以及如何实现它们。 1. 它提高了你的可信度 在搜索引擎结果页面上排名靠前的网站通常被搜索引擎认为是高质量和值得…

【unity细节】—怎么将unity编译时和运行时的功能隔开

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐怎么将unity编译时和运行时的功能隔开的问题⭐ 文章目录 ⭐怎么将unity编译时和…

TCP的十个核心机制

目录 前言一 到 三四. 滑动窗口五. 流量控制六. 拥塞控制七. 延时应答八. 捎带应答九. 面向字节流十. 异常处理总结 前言 TCP协议是传输层的重点协议, 负责将数据从发送端传输到接收端. TCP协议是传输控制协议, 顾名思义也就是对数据的传输进行控制的协议. TCP 协议有很多, 我…

android存储3--初始化.unlock事件的处理

android版本:android-11.0.0_r21http://aospxref.com/android-11.0.0_r21 概述:收到unlock事件后,StorageSessionController、vold、storaged模块进行各自初始化操作。 一、StorageManagerService::onUnlockUser处理unlock事件 设备解锁后…

openlayers瓦片的使用

OpenLayers是一个用于WebGIS客户端的地图开发库,支持多种地图。在使用瓦片时,先将自己需要的瓦片下载,下载好的瓦片会分层,越高的层级瓦片的数量余额多。 使用时可以引入 ol.js 文件,和 ol.css 文件,或者使…

机器学习 | 实验五:LDA

LDA的思想:“投影后类内方差最小,类间方差最大”。即数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。 假设我们有两类数据分别为红色和蓝色,…

关于socket编程中FD_XXX以及select函数的理解

文章目录 01 | 宏接口定义02 | 使用方法03 | 服务端代码示例 学习socket编程的时候看到很多FD开头的宏定义和函数,这里记录一下这些宏定义和函数的含义及处理流程 01 | 宏接口定义 fd_set fd_set 是一种表示文件描述符的集合类型,在socket编程中&#xf…