
实例(登录帝国时代)
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())
演示结果