PyQt6思维导图和实例(登录帝国时代)

实例(登录帝国时代)

python 复制代码
import sys
# 导入PyQt6库中的相关模块
from PyQt6.QtGui import QIcon, QPixmap, QMovie  # 用于处理图标、图片和动画
from PyQt6.QtCore import Qt  # 用于设置对齐方式等
from PyQt6.QtWidgets import (
    QApplication,  # 用于管理Qt应用程序的执行
    QWidget,  # 窗口类
    QPushButton,  # 按钮类
    QLabel,  # 标签类
    QLineEdit,  # 输入框类
    QVBoxLayout,  # 垂直布局类
    QHBoxLayout,  # 水平布局类
    QMessageBox,  # 消息框类
)

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        # 设置窗口大小、标题和图标
        self.resize(1366, 768)  # 设置窗口大小为1366x768
        self.setWindowTitle("帝国时代 - 登录")  # 设置窗口标题
        # 设置窗口图标,图标路径要保证正确
        self.setWindowIcon(QIcon("G:\\longz\\人工智能作业\\pictrue\\ReturnRome-AoEIcon.png"))

        # 创建垂直布局,用来垂直排列窗口中的组件
        layout = QVBoxLayout()

        # 创建标题标签并设置样式
        title_label = QLabel("欢迎来到帝国时代")  # 创建一个标签显示标题
        title_label.setStyleSheet("font-size: 100px; font-weight: bold; color: white;")  # 设置字体大小、粗体和字体颜色
        title_label.setAlignment(Qt.AlignmentFlag.AlignCenter)  # 设置标题居中对齐
        layout.addWidget(title_label)  # 将标题标签添加到垂直布局

        # 创建动图标签并显示动图
        age_gif = QLabel(self)  # 创建一个标签用来显示GIF动画
        age_gif.resize(1366, 768)  # 设置标签大小
        age_gif.setStyleSheet("background-color:green")  # 设置背景色为绿色,便于调试
        # 加载并显示GIF动画
        mv = QMovie("G:\\longz\\人工智能作业\\2024年12月2日\\New_Settlement_Building_Set.gif")
        age_gif.setMovie(mv)  # 设置动图为标签的内容
        mv.start()  # 启动动图
        age_gif.setScaledContents(True)  # 设置动图自适应标签大小

        # 创建水平布局,用于放置用户名和密码输入框
        input_layout = QHBoxLayout()

        # 创建用户名输入框
        self.username_input = QLineEdit()  # 创建一个输入框
        self.username_input.setPlaceholderText("请输入用户名")  # 设置占位文本
        input_layout.addWidget(self.username_input)  # 将用户名输入框添加到水平布局中

        # 创建密码输入框
        self.password_input = QLineEdit()  # 创建一个输入框
        self.password_input.setPlaceholderText("请输入密码")  # 设置占位文本
        self.password_input.setEchoMode(QLineEdit.EchoMode.Password)  # 设置输入内容为密码,隐藏输入的字符
        input_layout.addWidget(self.password_input)  # 将密码输入框添加到水平布局中

        layout.addLayout(input_layout)  # 将用户名和密码的水平布局添加到垂直布局中

        # 创建性别选择按钮的水平布局
        gender_layout = QHBoxLayout()
        male_button = QPushButton("男")  # 创建男性按钮
        male_button.setIcon(QIcon("G:\\longz\\人工智能作业\\pictrue\\Returnofrome_male_villager_icon.png"))  # 设置图标
        female_button = QPushButton("女")  # 创建女性按钮
        female_button.setIcon(QIcon("G:\\longz\\人工智能作业\\pictrue\\Returnofrome_female_villager_icon.png"))  # 设置图标
        gender_layout.addWidget(male_button)  # 将男性按钮添加到布局中
        gender_layout.addWidget(female_button)  # 将女性按钮添加到布局中
        layout.addLayout(gender_layout)  # 将性别选择的水平布局添加到垂直布局中

        # 创建登录按钮
        login_button = QPushButton("登录")  # 创建登录按钮
        login_button.setIcon(QIcon("G:\\longz\\人工智能作业\\pictrue\\Clubman.webp"))  # 设置登录按钮图标
        login_button.setStyleSheet("background-color: white; color: black; font-size: 18px;")  # 设置按钮的样式
        login_button.clicked.connect(self.handle_login)  # 连接点击事件,触发登录函数
        layout.addWidget(login_button)  # 将登录按钮添加到布局中

        # 设置窗口布局为垂直布局
        self.setLayout(layout)

    def handle_login(self):
        # 处理登录事件
        username = self.username_input.text()  # 获取用户名输入框的文本
        password = self.password_input.text()  # 获取密码输入框的文本

        # 判断用户名和密码是否正确
        if username == "龙政" and password == "Lz980806":
            # 如果用户名和密码正确,显示登录成功消息
            QMessageBox.information(self, "登录成功", "欢迎来到帝国时代!")
        else:
            # 如果用户名或密码错误,显示登录失败消息
            QMessageBox.warning(self, "登录失败", "用户名或密码错误,请重试!")

if __name__ == "__main__":
    # 创建应用程序对象
    app = QApplication(sys.argv)
    # 创建MyWidget窗口对象
    myWidget = MyWidget()
    # 显示窗口
    myWidget.show()
    # 启动应用程序
    sys.exit(app.exec())
    

演示结果

相关推荐
wdfk_prog9 小时前
[Linux]学习笔记系列 -- [drivers][i2c]i2c-dev
linux·笔记·学习
越努力越幸运50810 小时前
CSS3学习之网格布局grid
前端·学习·css3
chillxiaohan11 小时前
GO学习记录——多文件调用
开发语言·学习·golang
进击切图仔12 小时前
集成类 pyqt 项目构造流程
pyqt
Funny_AI_LAB13 小时前
AI Agent最新重磅综述:迈向高效智能体,记忆、工具学习和规划综述
人工智能·学习·算法·语言模型·agi
代码游侠14 小时前
学习笔记——Linux内核与嵌入式开发1
linux·运维·前端·arm开发·单片机·嵌入式硬件·学习
宇钶宇夕14 小时前
CoDeSys入门实战一起学习(二十八):(LD)三台电机顺起逆停程序详解—上升、下降沿使用上
单片机·嵌入式硬件·学习
科技林总14 小时前
【系统分析师】6.5 电子商务
学习
代码游侠14 小时前
C语言核心概念复习(一)
c语言·开发语言·c++·笔记·学习
tb_first14 小时前
万字超详细苍穹外卖学习笔记1
java·jvm·spring boot·笔记·学习·tomcat·mybatis