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…

Scala的Actor模型:并发编程的革新

引言 在现代软件开发中,尤其是涉及到大数据和分布式系统时,处理并发问题变得至关重要。Scala语言以其强大的并发模型——Actor模型,为开发者提供了一种高效、可伸缩的方式来构建并发应用程序。本文将深入探讨Scala的Actor模型,包…

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

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

zdppy_api+vue3+antd实现文件上传功能

后端代码 因为zdppy框架是一个低代码框架,所以后端接口是特别简单的一句话就能搞定。 import api import upload from api.middleware import corssave_dir "uploads"app api.Api(routes[upload.upload("/upload", save_dir)],middleware[c…

Driver.js 轻量级、互动式的功能引导效果

主要功能和特点 1. 高亮显示:高亮显示网页上的特定元素,吸引用户注意。 2. 多步骤引导:支持创建多个步骤的引导,每一步都可以高亮不同的元素并提供相应的说明。 3. 弹出提示:在高亮元素旁边显示弹出提示&#xff0c…

顺序结构程序设计(python)

文章目录 1.python运算符1.1 python算数运算1.2python比较运算符1.3 Python赋值运算符1.4 python逻辑运算符1.5 python成员运算符1.6python身份运算符1.7python运算符优先级 2.python数据类型2.1Python 数字类型转换2.2 Python 数字运算2.3 python数学函数2.4 python随机数函数…

开源大模型:技术革新与未来展望

开源大模型:技术革新与未来展望 随着开源程序的发展,越来越多的程序员开始关注并加入开源大模型的行列。开源不仅推动了技术的进步,也创造了一个共享与合作的生态系统。在这个背景下,开源大模型成为了众多技术爱好者和专业人士的…

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

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

PHP护照识别API、护照识别设备

我国经济发展迅速,更多人已经不局限在国内旅游,去国外游玩的人越来越多。巴厘岛是度假胜地,自然也吸引了许多我国的游客。近期,受阿贡火山喷发影响,巴厘岛伍拉莱国际机场于11月27日7时起临时关闭。我国南京的谢女士和朋…

vrrp与mstp

简单实验步骤

「C系列」C 命令行参数

文章目录 一、C 命令行参数二、C 命令行参数-应用场景1. 指定配置选项2. 处理文件3. 传递参数值 三、相关链接 一、C 命令行参数 C语言命令行参数是在运行程序时通过命令行传递给程序的额外信息或数据,用于自定义程序的行为,使程序能够执行不同的操作或…

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

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

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

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