python-登录界面-demo

文章目录

  • 前言
    • python-登录界面-demo

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


python-登录界面-demo

示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

demo源码:

import tkinter as tk
from tkinter import messagebox
# 定义按钮样式
button_style = {'bg': '#000000',  # 背景色'fg': 'white',    # 前景色(文字颜色)'font': ('Arial', 10),  # 字体和字号'relief': 'raised',  # 边框样式:raised表示凸起效果'borderwidth': 2,    # 边框宽度'width': 7,         # 按钮宽度'height': 1,         # 按钮高度
}
# 定义按钮样式
show_button_style = {'bg': '#000000',  # 背景色'fg': 'white',    # 前景色(文字颜色)'font': ('Arial', 13),  # 字体和字号'relief': 'raised',  # 边框样式:raised表示凸起效果'borderwidth': 2,    # 边框宽度'width': 15,         # 按钮宽度'height': 1,         # 按钮高度
}
# 创建主窗口
root = tk.Tk()
root.title("登录页面")
root.geometry("400x200")
root.configure(bg="#f0f0f0")  # 设置背景颜色# 隐藏窗口
root.withdraw()
# 居中弹窗
root.update_idletasks()
x = (root.winfo_screenwidth() - root.winfo_width()) // 2
y = (root.winfo_screenheight() - root.winfo_height()) // 3
root.geometry(f"+{x}+{y}")
# 显示窗口
root.deiconify()
# 创建一个框架来放置用户名和密码
frame = tk.Frame(root)
frame.pack(pady=20)# 创建用户名标签和输入框
username_label = tk.Label(frame, text="用户名:")
username_label.grid(row=0, column=0, padx=5, pady=20)
username_entry = tk.Entry(frame)
username_entry.grid(row=0, column=1, padx=5, pady=5)# 创建密码标签和输入框
password_label = tk.Label(frame, text="密码:")
password_label.grid(row=1, column=0, padx=5, pady=5)
password_entry = tk.Entry(frame, show="*")
password_entry.grid(row=1, column=1, padx=5, pady=5)# 定义一个按钮点击事件处理函数
def on_button_click(action):if action == "shutdown":messagebox.showinfo("关机", "按钮被点击了!")elif action == "restart":messagebox.showinfo("重启", "按钮被点击了!")elif action == "cancel":messagebox.showinfo("撤销", "按钮被点击了!")# 定义显示成功登录窗口的函数
def show_success_window():success_window = tk.Toplevel(root)success_window.title("辅助工具")success_window.geometry("400x300")success_window.configure(bg="#f0f0f0")  # 设置背景颜色# 隐藏窗口success_window.withdraw()# 居中弹窗success_window.update_idletasks()x = (success_window.winfo_screenwidth() - success_window.winfo_width()) // 2y = (success_window.winfo_screenheight() - success_window.winfo_height()) // 3success_window.geometry(f"+{x}+{y}")# 显示窗口success_window.deiconify()# 创建一个框架来放置按钮frame = tk.Frame(success_window, bg="#f0f0f0")frame.pack(padx=20, pady=30)# 创建按钮并放置在框架中shutdown_button = tk.Button(frame, text="关机", command=lambda: on_button_click("shutdown"), **show_button_style)shutdown_button.grid(row=0, column=0, sticky="ew", padx=10, pady=10)restart_button = tk.Button(frame, text="重启", command=lambda: on_button_click("restart"), **show_button_style)restart_button.grid(row=1, column=0, sticky="ew", padx=10, pady=10)open_address_cancel = tk.Button(frame, text="撤销", command=lambda: on_button_click("cancel"),**show_button_style)open_address_cancel.grid(row=2, column=0, sticky="ew", padx=10, pady=10)# 使按钮在水平方向上扩展以填充框架frame.grid_columnconfigure(0, weight=1)# 定义登录按钮点击事件处理函数
def login():username = username_entry.get()password = password_entry.get()if username == "yzy" and password == "yzy":show_success_window()  # 显示成功登录窗口else:messagebox.showerror("错误", "用户名或密码错误!")# 创建登录按钮
login_button = tk.Button(root, text="登录", command=login, **button_style)
login_button.pack(pady=5)# 创建作者标签
author_label = tk.Label(root, text="author: 杨镇宇", bg="#66b3ff")
author_label.pack(side=tk.RIGHT, pady=0)
# 启动主事件循环
root.mainloop()

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

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

相关文章

Flask之表单

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、HTML表单 二、使用Flask-WTF处理表单 2.1、定义WTForms表单类 2.2、输出HTML代码 2.3、在模板中渲染表单 三、处理表单数据 3.1、提…

geojson文件默认已有的style会导致webGL渲染错误处理办法

geojson文件默认已有的style会导致webGL渲染错误处理办法 相关链接: 功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 代码: export function showDraw(isFlyTo) {removeLayer()graphicLayer new mars3d.layer.GeoJsonLayer({data: {type: &quo…

有两个长方柱,其高、宽、长分别为12,20,25;10,14,20。求它们的体积。编写一个基于对象的程序,在类中用带参数的构造函数对数据成员初始化

在上一篇文章中的构造函数不带参数,在函数体中对数据成员赋初值。这种方式使该类的每一个对象的数据成员都得到同一组初值(例中各个对象的数据成员的初值均为0)。但有时用户希望对不同的对象赋予不同的初值,这时就无法使用上面的办法来解决了…

Open AI 前 Superalignment部门研究员Leopold Aschenbrenner的关于Superintelligence担忧的真挚长文

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

理解MySQL数据库主键:从基础概念到实践

一、前言 在关系型数据库中,主键(Primary Key)是一个至关重要的概念。它不仅用于唯一标识表中的每一行数据,还在保证数据完整性和执行高效查询方面发挥着重要作用。本篇文章将深入探讨MySQL数据库主键的相关知识,包括…

基于ESP8266串口WIFI模块ESP-01S在Station模式(即接收无线信号( WiFi))下实现STC单片机与手机端网路串口助手相互通信功能

基于ESP8266串口WIFI模块ESP-01S在Station模式(即接收无线信号( WiFi))下实现STC单片机与手机端网路串口助手相互通信功能 ESP8266_01S引脚功能图ESP8266_01S原理图ESP8266_01S尺寸图检验工作1、USB-TTL串口工具(推荐使用搭载CP2102芯片的安信可USB-T1串口)与ESP8266_01S…

基于前馈神经网络的姓氏分类任务(基础)

1、认识前馈神经网络 What is it 图1-1 前馈神经网络结构 人们大多使用多层感知机(英语:Multilayer Perceptron,缩写:MLP)作为前馈神经网络的代名词,但是除了MLP之外,卷积神经网络&#xff08…

Orangepi Zero2使用外设驱动库wiringOP驱动蜂鸣器

目录 一、安装外设驱动库 1.1 wiringPi外设SDK安装: 二、使用wiringOP库驱动蜂鸣器 2.1 蜂鸣器的硬件连接: 2.2 使用wiringOP库实现蜂鸣器滴滴响: 2.3 设置vim代码显示格式: 一、安装外设驱动库 1.1 wiringPi外设SDK安装&a…

Free Pascal语言基础学习:定义变量、数据类型、循环语句、case语句、条件判断、with语句、运算符

Pascal是一种结构化编程语言,而Free Pascal作为其现代编译器,不仅支持跨多种操作系统和处理器架构,还提供了高效的内存使用和函数重载等先进功能。Free Pascal继承了Pascal语言的核心特性,同时进行了扩展和优化,使其成…

基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

vrrp与mstp

简单实验步骤

Aiseesoft Screen Recorder v2解锁版安装教程 (屏幕录像工具)

前言 Aiseesoft Screen Recorder 是一个易于使用的屏幕捕捉工具,可以在您的计算机上录制任何视频或音频并以高质量保存它们。这款功能强大的视频屏幕录制应用程序可以帮助您在 Windows 11/10/8/7 上抓取在线电影和广播、捕捉游戏、制作视频教程、录制网络摄像头视频…

java类的加载 ,类加载器以及双亲委派机制详细介绍

1_类的加载 路径 类的加载过程类的加载时机 类的加载 当程序在运行后,第一次使用某个类的时候,会将此类的class文件读取到内存,并将此类的所有信息存储到一个Class对象中 说明:Class对象是指java.lang.Class类的对象&#xff0c…

【2024最新版】图解Mysql数据库配置、命令行及Workbench访问(Windows版本)

目录 1. 准备工作1.1 安装MySQL1.2 验证MySQL的环境变量 2. 环境变量配置3. 访问MySQL3.1 命令行访问MySQL3.2 Workbench访问MySQL 1. 准备工作 1.1 安装MySQL 如果您已经安装了MySQL,请从【2. Mysql 环境配置】开始;如果您没有安装MySQL,请…

【MySQL】数据库的索引机制

文章目录 前言1. 索引是什么2. 索引的优缺点2.1 优点2.2 缺点 3. 索引的操作3.1 创建索引3.2 查看索引3.3 删除索引 4. 索引的存储原理4.1 B树4.2 B树 结语 前言 在数据库中,我们经常使用到的操作就是查询,当数据量小的时候,查询的速度很快&…

COMSOL - 一个点光源是否总能照亮整个房间?

20 世纪 50 年代,数学家恩斯特施特劳斯(Ernst Straus)提出了一个有趣的问题:在一个侧壁由理想反射镜构成的任意形状的空房间里,一个点光源是否总能照亮整个房间?诺贝尔奖获得者罗杰彭罗斯(Roger…

1S013485认证:企业腾飞的引擎

在全球化的今天,企业要想在激烈的市场竞争中立于不败之地,必须不断提升自身的综合实力。1S013485认证正是帮助企业实现这一目标的重要工具。获得这项认证,企业不仅能在市场竞争中占据优势,还能在多个层面实现质的飞跃,…

mac m芯片下安装nacos

背景:最近再研究 下载地址: https://nacos.io/download/nacos-server/ 解压zip包 unzip nacos-server-2.3.2.zip启动 进入到bin目录下 ./startup.sh -m standalone访问可视化界面 账号密码都是nacos,进行登录即可,nacos的端口为…

还在为职场烦恼?六西格玛黑带培训来帮忙!

为什么现在越来越多的学员都直奔六西格玛黑带培训呢?别急,张驰咨询这就来给你们揭秘! 首先,六西格玛这个名头可不是盖的!它就像是企业管理的“超级英雄”,专门解决各种流程中的“小怪兽”——也就是那些影…

Hadoop3:MapReduce中的Shuffle机制

一、流程图 Shuffle是Map方法之后,Reduce方法之前的数据处理过程称。 二、图解说明 1、数据流向 map方法中context.write(outK, outV);开始,写入环形缓冲区,再进行分区排序,写到磁盘 reduce方法拉取磁盘上的数据,…