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()) # 进入应用程序的主循环,等待用户操作