【PyQt入门】麦当劳会员登录页面实战

news2024/12/27 7:12:33

PyQt思维导图:


效果图如下:

设计页面包含:图标(含动图gif),窗口logo,title,文本框,按钮


 

素材图如下: 

 

 

 


完整代码以及标注如下:

 

# 导入必要的PyQt6模块
from PyQt6.QtGui import QMovie, QIcon, QPixmap
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton
import sys
 
# 定义一个名为Mcdonalds的类,它继承自QWidget
class Mcdonalds(QWidget):
    def __init__(self):
        super().__init__()  # 调用父类的构造函数
 
        # 设置窗口的大小和固定大小
        self.resize(600,400)
        self.setFixedSize(600,400)
        # 设置窗口标题
        self.setWindowTitle('麦当当会员节(╹ڡ╹ )')
        # 设置窗口图标
        self.setWindowIcon(QIcon('../pic/mdl3.jpg'))
        # 设置窗口的样式表,包括背景颜色和边框
        self.setStyleSheet('background-color:yellow;border :2px solid black')
 
        # 创建一个QLineEdit用于输入会员账号
        edit1=QLineEdit(self)
        edit1.move(370,150)  # 移动到指定位置
        edit1.setPlaceholderText('麦当当会员账号')  # 设置占位符文本
        edit1.setStyleSheet('background-color:rgb(230,230,230)')  # 设置样式表
 
        # 创建一个QLineEdit用于输入密码
        edit2=QLineEdit(self)
        edit2.move(370,180)  # 移动到指定位置
        edit2.setPlaceholderText('麦当当会员密码')  # 设置占位符文本
        edit2.setStyleSheet('background-color:rgb(230,230,230)')  # 设置样式表
        edit2.setEchoMode(QLineEdit.EchoMode.Password)  # 设置密码模式
 
        # 创建一个QLabel用于显示动画
        lib1=QLabel(self)
        lib1.setStyleSheet('background-color:blue;border :6px solid black')  # 设置样式表
        lib1.resize(250,400)  # 设置大小
        mv=QMovie('../pic/mdl1.gif')  # 创建一个QMovie对象
        lib1.setMovie(mv)  # 将QMovie对象设置给QLabel
        mv.start()  # 开始播放动画
        lib1.setScaledContents(True)  # 设置内容缩放以适应QLabel的大小
 
        # 创建一个QLabel用于显示小图片(会员账号图标)
        lib2=QLabel(self)
        lib2.setPixmap(QPixmap('../pic/mdl3.jpg'))  # 设置图片
        lib2.resize(20,20)  # 设置大小
        lib2.move(340,150)  # 移动到指定位置
        lib2.setScaledContents(True)  # 设置内容缩放
 
        # 创建一个QLabel用于显示小图片(会员密码图标)
        lib3 = QLabel(self)
        lib3.setPixmap(QPixmap('../pic/mdl5.jpg'))  # 设置图片
        lib3.resize(20, 20)  # 设置大小
        lib3.move(340, 180)  # 移动到指定位置
        lib3.setScaledContents(True)  # 设置内容缩放
 
        # 创建一个QLabel用于显示较大的图片(可能是背景图或广告图)
        lib4 = QLabel(self)
        lib4.setStyleSheet('background-color:blue')  # 设置背景颜色(这里设置背景颜色可能不是必要的,因为会被图片覆盖)
        lib4.setPixmap(QPixmap('../pic/mdl3.jpg'))  # 设置图片
        lib4.resize(120, 60)  # 设置大小
        lib4.move(365, 70)  # 移动到指定位置
        lib4.setScaledContents(True)  # 设置内容缩放
 
        
        lib5 = QLabel(self)  # 重复定义,应删除或重命名
        lib5.setPixmap(QPixmap('../pic/mdl2.jpg'))  # 设置图片
        lib5.resize(160, 100)  # 设置大小
        lib5.move(250, 310)  # 移动到指定位置
        lib5.setScaledContents(True)  # 设置内容缩放
 
        
        lib = QLabel(self)  # 错误:重复定义,应重命名
        lib.setPixmap(QPixmap('../pic/mdl4.jpg'))  # 设置图片
        lib.resize(160, 100)  # 设置大小
        lib.move(440, 310)  # 移动到指定位置
        lib.setScaledContents(True)  # 设置内容缩放
 
        # 创建一个QLabel用于显示小图片(可能是品牌logo)
        lib6 = QLabel(self)  
        lib6.setPixmap(QPixmap('../pic/mdl6.jpg'))  # 设置图片
        lib6.resize(60,60)  # 设置大小
        lib6.move(250, 0)  # 移动到窗口的左上角位置
        lib6.setScaledContents(True)  # 设置内容缩放
 
        # 创建一个QLabel用于显示另一个小图片(可能是品牌logo的重复或不同版本)
        lib7 = QLabel(self)
        lib7.setPixmap(QPixmap('../pic/mdl6.jpg'))  # 设置图片
        lib7.resize(60, 60)  # 设置大小
        lib7.move(540, 0)  # 移动到窗口的右上角位置
        lib7.setScaledContents(True)  # 设置内容缩放
 
        # 创建一个QLabel用于显示第三个小图片(可能是品牌logo的另一个版本或装饰)
        lib8 = QLabel(self)
        lib8.setPixmap(QPixmap('../pic/mdl6.jpg'))  # 设置图片
        lib8.resize(60, 60)  # 设置大小
        lib8.move(395, 0)  # 移动到窗口的顶部中央位置
        lib8.setScaledContents(True)  # 设置内容缩放
 
        # 创建一个QPushButton用于登录
        btn1 = QPushButton("登录", self)
        btn1.move(345, 220)  # 移动到指定位置
        btn1.resize(160, 30)  # 设置大小
        btn1.setStyleSheet("background-color:red;border-radius:3px;color:white")  # 设置样式表
 
# 主程序入口
if __name__ == '__main__':
    app = QApplication(sys.argv)  # 创建一个QApplication对象
 
    m=Mcdonalds()  # 创建Mcdonalds类的实例
 
    m.show()  # 显示窗口
 
    sys.exit(app.exec())  # 进入应用程序的主循环,等待用户操作

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

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

相关文章

中断,定时器相关内容

中断,定时器相关内容 单片机中断什么是单片机的中断中断嵌套中断的优点中断结构中断相关寄存器中断优先级IP中断号中断响应条件中断使用实例在这里插入代码片 定时器CPU 时序的有关知识定时器原理定时计数结构定时/计数器的寄存器定时器配置功能实现 单片机中断 高位…

五层网络协议(封装和分用)

目录 七层网络协议五层网络协议封装1.应用层2.传输层3.网络层4.数据链路层5.物理层 分用1. 物理层2.数据链路层3.网络层 IP 协议4.传输层 UDP 协议5.应用层 七层网络协议 网络通信过程中,需要涉及到的细节,其实是非常非常多的,如果要有一个协…

在鲲鹏麒麟服务器上部署MySQL主从集群

因项目需求需要部署主从MySQL集群,继续采用上次的部署的MySQL镜像arm64v8/mysql:latest,版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101 部署MySQL主节点 在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/l…

一款支持80+语言,包括:拉丁文、中文、阿拉伯文、梵文等开源OCR库

大家好,今天给大家分享一个基于PyTorch的OCR库EasyOCR,它允许开发者通过简单的API调用来读取图片中的文本,无需复杂的模型训练过程。 项目介绍 EasyOCR 是一个基于Python的开源项目,它提供了一个简单易用的光学字符识别&#xff…

C++学习日记---第16天

笔记复习 1.C对象模型 在C中,类内的成员变量和成员函数分开存储 我们知道,C中的成员变量和成员函数均可分为两种,一种是普通的,一种是静态的,对于静态成员变量和静态成员函数,我们知道他们不属于类的对象…

如何搭建JMeter分布式集群环境来进行性能测试

在性能测试中,当面对海量用户请求的压力测试时,单机模式的JMeter往往力不从心。如何通过分布式集群环境,充分发挥JMeter的性能测试能力?这正是许多测试工程师在面临高并发、海量数据时最关注的问题。那么,如何轻松搭建…

人工智能-卷积神经网络(学习向)

一.概述; 卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理具有类似网格结构的数据(如图像)的深度学习模型。 主要用于处理机器视觉任务。 主要功能; 1.图像分类 2.目标检测 3.图像分割…

一些基于宏基因组的巨型病毒研究

Introduction 上次已经介绍了巨型病毒的一些基本内容,也讲到了不依赖培养的方法是从环境样本中发现巨型病毒基因组成的不可或缺的工具。可以通过基因组解析宏基因组学来从环境序列数据中获取 NCLDV 基因组并进行深入研究如功能基因,宿主,进化…

【Django-xadmin】

时间长不用,会忘的系列 1、Django-xadmin后台字段显示处理 主要是修改每个模块下adminx.py文件 代码解释:第1行控制表单字段显示第2行控制列表字段显示第3行控制搜索条件第4行控制过滤条件第5行支持单个或多个字段信息修改第6行列表分页,每页显示多少行…

深入浅出体验AI生图产品Dall-E

DALL-E是由OpenAI开发的一种革命性的AI图像生成工具,能够根据文本描述生成图像。它的名字灵感来源于著名画家萨尔瓦多达利(Salvador Dal)和皮克斯动画电影中的角色瓦力(WALL-E),这暗示了其在艺术创造力与技…

域名解析系统 DNS

1.域名系统概述 用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住长达32 位的二进制主机地址。即使是点分十进制地址也并不太容易记忆。但在应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有P地址,而…

学习ASP.NET Core的身份认证(基于Session的身份认证3)

开源博客项目Blog中提供了另一种访问控制方式,其基于自定义类及函数的特性类控制访问权限。本文学习并测试开源博客项目Blog的访问控制方式,测试程序中直接复用开源博客项目Blog中的相关类及接口定义,并在其上调整判断逻辑。   首先是接口A…

十六(AJAX3)、XMLHttpRequest、Promise、简易axios封装、案例天气预报、lodash-debounce防抖

1. XMLHttpRequest 1.1 XMLHttpRequest-基本使用 /* 定义:XMLHttpRequest(XHR)对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更…

【QT】音乐播放器demo

1、使用设计师模式绘制ui界面 添加QPushButton并设置大小,ctrl鼠标拖动复制相同的组件。 添加icon //ps:icon下载网站 设置按钮无边框并设置鼠标悬停颜色: 修改QWidget样式表,添加: *{ border:none; } QPushBu…

「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器

本篇将带你实现一个颜色选择器应用。用户可以从预设颜色中选择,或者通过输入颜色代码自定义颜色来动态更改界面背景。该应用展示了如何结合用户输入、状态管理和界面动态更新的功能。 关键词 UI互动应用颜色选择器状态管理用户输入界面动态更新 一、功能说明 颜色…

T620存储安全方案SoC芯片技术手册

系统资源 集成32位国产CPU CK803S;最高工作频率260Mhz CK803S内置16KB I/D Cache,内置32KB DTCM 32KB ROM;256KB SRAM;8KB SRAM(系统专用) 512KB/1MB 片内Flash 安全算法 支持SM4数据加密,加密性…

计算机光电成像理论基础

一、透过散射介质成像 1.1 光在散射介质中传输 光子携带物体信息并进行成像的过程是一个涉及光与物质相互作用的物理现象。这个过程可以分为几个步骤来理解: 1. **光的发射或反射**: - 自然界中的物体可以发射光(如太阳)&am…

C语言——自我介绍_Gitee的基本使用

自我介绍 一名信息安全技术应用专业的大学生,来到CSDN博客论坛已有两年。写博客的目的:第一点是为了学习到更多的知识,以便以后所需;第二点是为了读者,俺是一个初学者,希望可以和读者朋友共同进步&#xf…

Redis高阶集群搭建+集群读写

问题 容量不够,redis 如何进行扩容?并发写操作, redis 如何分摊?另外,主从模式,薪火相传模式,主机宕机,导致 ip 地址发生变化,应用程序中配置需要修改对应的主机地址、端…

windows下kafka初体验简易demo

这里提供了windows下的java1.8和kafka3.9.0版本汇总,可直接免费下载 【免费】java1.8kafka2.13版本汇总资源-CSDN文库 解压后可以得到一个文件夹 资料汇总内有一个kafka文件资料包.tgz,解压后可得到下述文件夹kafka_2.13-3.9.0,资料汇总内还…