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())
    

演示结果

相关推荐
Bathwind-w7 小时前
FOC开发工具学习
学习
Coder_Boy_7 小时前
DDD从0到企业级:迭代式学习 (共17章)之 四
java·人工智能·驱动开发·学习
deng-c-f8 小时前
Linux C/C++ 学习日记(49):线程池
c++·学习·线程池
HyperAI超神经8 小时前
【vLLM 学习】Prithvi Geospatial Mae
人工智能·python·深度学习·学习·大语言模型·gpu·vllm
TL滕10 小时前
从0开始学算法——第十八天(分治算法)
笔记·学习·算法
思成不止于此11 小时前
【MySQL 零基础入门】MySQL 约束精讲(一):基础约束篇
数据库·笔记·sql·学习·mysql
小黄人软件11 小时前
【过度滥用眼】真正的理解,从闭眼开始:如何把“眼睛视觉依赖”降到最低,把大脑效率提到最高。【最少用眼的工作与学习体系】
学习
老华带你飞11 小时前
建筑材料管理|基于springboot 建筑材料管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring
L.fountain12 小时前
图像自回归生成(Auto-regressive image generation)实战学习(一)
人工智能·深度学习·学习·计算机视觉·图像自回归
TL滕12 小时前
从0开始学算法——第十八天(分治算法练习)
笔记·学习·算法