Skip to content

Commit 70d2ccc

Browse files
committed
refactor: about
1 parent 0f5e1b2 commit 70d2ccc

3 files changed

Lines changed: 83 additions & 7 deletions

File tree

aao/app.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
from aao.measure.overlay import OverlayWindow # noqa: E402
5252
from aao.measure.worker import MeasurementWorker # noqa: E402
5353
from aao.timeline.editor_window import EditorWindow # noqa: E402
54+
from aao.ui.about_page import AboutPage # noqa: E402
5455
from aao.ui.calibration_page import CalibrationPage # noqa: E402
5556
from aao.ui.farm_page import FarmPage # noqa: E402
5657
from aao.ui.log_handler import QtLogHandler # noqa: E402
@@ -268,7 +269,7 @@ def _build_ui(self) -> None:
268269
# 左侧侧栏
269270
self.nav = QListWidget()
270271
self.nav.setFixedWidth(120)
271-
for label in ["🎯 凹图", "✏️ 打轴", "📏 校准", "⚙️ 设置"]:
272+
for label in ["🎯 凹图", "✏️ 打轴", "📏 校准", "⚙️ 设置", "ℹ️ 关于"]:
272273
QListWidgetItem(label, self.nav)
273274
self.nav.setCurrentRow(0)
274275
root.addWidget(self.nav)
@@ -284,6 +285,7 @@ def _build_ui(self) -> None:
284285
self._editor = self.editor_page # 供热键 mark_action
285286
self.calib_page = CalibrationPage()
286287
self.settings_page = SettingsPage()
288+
self.about_page = AboutPage()
287289
# 注入 controller(校准页需要截图;凹图页需 controller+tasker,已在上面注入)
288290
if self._controller is not None:
289291
self.calib_page.set_runtime(self._controller)
@@ -292,6 +294,7 @@ def _build_ui(self) -> None:
292294
self.stack.addWidget(self.editor_page)
293295
self.stack.addWidget(self.calib_page)
294296
self.stack.addWidget(self.settings_page)
297+
self.stack.addWidget(self.about_page)
295298
root.addWidget(self.stack, 1)
296299

297300
self.setCentralWidget(central)

aao/ui/about_page.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
"""关于页:项目简介、Logo、链接与许可说明。"""
2+
3+
from __future__ import annotations
4+
5+
from PySide6.QtCore import Qt
6+
from PySide6.QtGui import QPixmap
7+
from PySide6.QtWidgets import QFrame, QLabel, QVBoxLayout, QWidget
8+
9+
from aao import __version__
10+
from aao.utils.runtime_paths import project_root
11+
12+
13+
class AboutPage(QWidget):
14+
"""关于页。"""
15+
16+
def __init__(self) -> None:
17+
super().__init__()
18+
self._build_ui()
19+
20+
def _build_ui(self) -> None:
21+
root = QVBoxLayout(self)
22+
root.setAlignment(Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignHCenter)
23+
root.setSpacing(14)
24+
25+
logo = QLabel()
26+
logo.setAlignment(Qt.AlignmentFlag.AlignCenter)
27+
pix = self._load_logo()
28+
if not pix.isNull():
29+
logo.setPixmap(pix.scaledToWidth(140, Qt.TransformationMode.SmoothTransformation))
30+
root.addWidget(logo)
31+
32+
title = QLabel(f"<h2>ArknightsAutoOperator v{__version__}</h2>")
33+
title.setAlignment(Qt.AlignmentFlag.AlignCenter)
34+
root.addWidget(title)
35+
36+
desc = QLabel(
37+
"明日方舟 PC 官方客户端自动凹图工具。<br>"
38+
"帧级自动操作 · 费用条计时 · 打轴对轴 · 循环重试<br>"
39+
)
40+
desc.setAlignment(Qt.AlignmentFlag.AlignCenter)
41+
desc.setWordWrap(True)
42+
root.addWidget(desc)
43+
44+
link = QLabel(
45+
'<a href="https://github.com/Windsland52/ArknightsAutoOperator">'
46+
"🔗 GitHub 项目地址</a><br>"
47+
"如果这个项目对你有帮助,欢迎在仓库右上角点个 Star ⭐"
48+
)
49+
link.setAlignment(Qt.AlignmentFlag.AlignCenter)
50+
link.setOpenExternalLinks(True)
51+
root.addWidget(link)
52+
53+
line = QFrame()
54+
line.setFrameShape(QFrame.Shape.HLine)
55+
line.setFrameShadow(QFrame.Shadow.Sunken)
56+
root.addWidget(line)
57+
58+
info = QLabel(
59+
"仅支持 Windows / PC 官方客户端(Arknights.exe)。<br>"
60+
"发版包自带 ArknightsFrameAssistant(AFA, GPL-3.0),用于暂停/步进/技能/撤退热键。<br>"
61+
"AFA 源码与许可见:"
62+
'<a href="https://github.com/CloudTracey/arknights-frame-assistant">'
63+
"CloudTracey/arknights-frame-assistant</a>"
64+
)
65+
info.setAlignment(Qt.AlignmentFlag.AlignCenter)
66+
info.setOpenExternalLinks(True)
67+
info.setWordWrap(True)
68+
info.setStyleSheet("color: #9aa0a6;")
69+
root.addWidget(info)
70+
71+
root.addStretch()
72+
73+
@staticmethod
74+
def _load_logo() -> QPixmap:
75+
for name in ("logo.png", "logo.ico"):
76+
p = project_root() / name
77+
if p.exists():
78+
return QPixmap(str(p))
79+
return QPixmap()

aao/ui/settings_page.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,6 @@ def _build_ui(self) -> None:
200200
rl.addLayout(btn_row)
201201
root.addWidget(res_box)
202202

203-
# --- 关于 ---
204-
about_box = QGroupBox("关于")
205-
al = QVBoxLayout(about_box)
206-
al.addWidget(QLabel(f"ArknightsAutoOperator v{__version__}"))
207-
al.addWidget(QLabel("MaaFramework 方案二 + PySide6 · 帧级自动凹图"))
208-
root.addWidget(about_box)
209203
root.addStretch()
210204

211205
# 日志

0 commit comments

Comments
 (0)