思维导图+实现一个登录窗口界面

QQ2024122-205851

python 复制代码
import sys
from PyQt6.QtGui import QIcon, QPixmap, QMovie
from PyQt6.QtWidgets import QApplication, QWidget, QLineEdit, QPushButton, QLabel, QVBoxLayout

# 封装我的窗口类
class LoginWidget(QWidget):
    # 构造函数
    def __init__(self):
        # 初始化父类
        super().__init__()

        # 设置窗口标题
        self.setWindowTitle("ZENNOVAIR音乐登录")

        # 设置窗口大小
        self.resize(400, 300)

        # 设置整个窗口的背景颜色
        self.setStyleSheet("background-color: rgb(255, 255, 255);")  # 白色背景

        # 创建一个垂直布局
        v_layout = QVBoxLayout()

        # 用户图标和用户名输入框
        self.user_icon_label = QLabel(self)  # 用户图标标签
        pixmap = QPixmap("C:\\Users\\lilba\\Desktop\\4.jpg")  # 加载用户图标(请替换为你的图片文件路径)
        self.user_icon_label.setPixmap(pixmap)  # 设置图标到标签
        self.user_icon_label.setScaledContents(True)  # 设置图标自动适应标签大小
        self.user_icon_label.setFixedSize(30, 30)  # 设置图标大小(可以根据需要调整)
        v_layout.addWidget(self.user_icon_label)  # 将图标标签添加到布局(但实际上不添加到窗口,后续手动管理)

        self.username_label = QLabel("用户名:", self)  # 用户名标签
        self.username_label.setStyleSheet("color: white; background-color: rgb(64, 143, 168); padding: 5px;")  # 设置标签样式
        v_layout.addWidget(self.username_label)  # 将用户名标签添加到布局

        self.username_edit = QLineEdit(self)  # 用户名输入框
        self.username_edit.setStyleSheet("background-color: rgb(200, 200, 200); border: 1px solid rgb(64, 143, 168); padding: 10px;")  # 设置输入框样式
        v_layout.addWidget(self.username_edit)  # 将用户名输入框添加到布局

        # 动图标签
        self.gif_label = QLabel(self)  # 动图标签
        movie = QMovie("C:\\Users\\lilba\\Desktop\\7.gif")  # 加载动图文件(请替换为你的GIF文件路径)
        self.gif_label.setMovie(movie)  # 设置动图到标签
        movie.start()  # 开始播放动图
        self.gif_label.setFixedSize(100, 100)  # 设置动图大小(可以根据需要调整)
        v_layout.addWidget(self.gif_label)  # 将动图标签添加到布局(但实际上后续手动管理)

        # 密码图标和密码输入框
        self.password_icon_label = QLabel(self)  # 密码图标标签
        pixmap = QPixmap("C:\\Users\\lilba\\Desktop\\4.jpg")  # 加载密码图标(请替换为你的图片文件路径)
        self.password_icon_label.setPixmap(pixmap)  # 设置图标到标签
        self.password_icon_label.setScaledContents(True)  # 设置图标自动适应标签大小
        self.password_icon_label.setFixedSize(30, 30)  # 设置图标大小(可以根据需要调整)
        v_layout.addWidget(self.password_icon_label)  # 将图标标签添加到布局

        self.password_label = QLabel("密码:", self)  # 密码标签
        self.password_label.setStyleSheet("color: white; background-color: rgb(64, 143, 168); padding: 5px;")  # 设置标签样式
        v_layout.addWidget(self.password_label)  # 将密码标签添加到布局

        self.password_edit = QLineEdit(self)  # 密码输入框
        self.password_edit.setEchoMode(QLineEdit.EchoMode.Password)  # 设置密码模式
        self.password_edit.setStyleSheet("background-color: rgb(200, 200, 200); border: 1px solid rgb(64, 143, 168); padding: 10px;")  # 设置输入框样式
        v_layout.addWidget(self.password_edit)  # 将密码输入框添加到布局

        # 登录按钮
        self.login_btn = QPushButton("登录", self)  # 登录按钮
        self.login_btn.setStyleSheet("background-color: rgb(64, 143, 168); color: white; border: none; padding: 10px 20px; border-radius: 5px;")  # 设置按钮样式
        self.login_btn.clicked.connect(self.on_login_clicked)  # 连接按钮点击信号到槽函数

        # 由于我们不使用布局管理器,因此需要手动设置组件的位置和大小
        # 设置用户图标和用户名标签、输入框的位置
        self.user_icon_label.move(20, 20)
        self.username_label.move(60, 20)
        self.username_edit.move(110, 20)
        self.username_edit.resize(260, 30)

        # 设置动图的位置
        self.gif_label.move(150, 70)

        # 设置密码图标和密码标签、输入框的位置
        self.password_icon_label.move(20, 120)
        self.password_label.move(60, 120)
        self.password_edit.move(110, 120)
        self.password_edit.resize(260, 30)

        # 设置登录按钮的位置
        self.login_btn.move(140, 170)
        self.login_btn.resize(100, 40)

    # 登录按钮的槽函数
    def on_login_clicked(self):
        print("登录按钮被点击")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    login_widget = LoginWidget()
    login_widget.show()
    sys.exit(app.exec())
相关推荐
Wang's Blog4 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
信誓旦旦的程序猿4 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河5 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年5 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym5 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
DongQiShanRen5 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CS创新实验室5 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
CCblandy5 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
quantdash_cc5 小时前
Pandas 处理分钟级股票行情:从原始数据清洗到 K 线聚合
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
yu_zhidun5 小时前
企业电脑监控软件怎么选:别只看功能清单,先看这 6 个底层能力
开发语言·电脑·php·域智盾系统