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

实例(登录帝国时代)
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) # 设置窗口大小为1366x768self.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())
