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

演示结果

相关推荐
●VON几秒前
使用 OpenAgents 搭建基于智谱 GLM 的本地智能体(Agent)
学习·安全·制造·智能体·von
丝斯2011几秒前
AI学习笔记整理(45)——大模型数据读取技术与模型部署
人工智能·笔记·学习
mpHH4 分钟前
postgresql 执行器中readme的翻译
数据库·学习·postgresql
风送雨12 分钟前
FastAPI 学习教程 · 第2部分
学习·fastapi
石像鬼₧魂石13 分钟前
3306 端口(MySQL 数据库)渗透测试全流程学习总结
数据库·学习·mysql
Main. 2420 分钟前
从0到1学习Qt -- Qt3D入门
开发语言·qt·学习
weixin_4624462321 分钟前
Python+React 专为儿童打造的汉字学习平台:从学前到小学的智能汉字教育解决方案
python·学习·react.js
星火开发设计25 分钟前
C++ deque 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识
saoys30 分钟前
Opencv 学习笔记:图像膨胀 / 腐蚀(附滑块动态调节腐蚀核大小)
笔记·opencv·学习
hhcccchh35 分钟前
学习vue第十天 V-Model学习指南:双向绑定的魔法师
前端·vue.js·学习