Skip to content
This repository was archived by the owner on Jun 28, 2025. It is now read-only.

Commit e739f5d

Browse files
committed
refactor: 先优化一点点,明天再继续
1 parent d5132a0 commit e739f5d

8 files changed

Lines changed: 112 additions & 140 deletions

File tree

.gitignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Editor Config
2-
idea/
2+
.idea/
33
.vs/
4+
.vscode/
45

56
# Python Environment & Cache
67
**/*venv*/
@@ -14,4 +15,7 @@ Plain_Craft_Launcher_2/data/*.log
1415
# Debugging Files
1516
**/.minecraft/
1617
**/dist/*
17-
nuitka-crash-report.xml
18+
nuitka-crash-report.xml
19+
20+
# macOS FileSystem's Shit
21+
.DS_Store

Plain_Craft_Launcher_2/Application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
from PyQt5.QtWidgets import *
2+
from PyQt5.QtWidgets import QApplication
33
import sys
44

55
from FormMain import FormMain

Plain_Craft_Launcher_2/FormMain.py

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import sys
33
import os
44
from PyQt5.QtWidgets import QApplication, QWidget
5-
from PyQt5.QtGui import QResizeEvent
5+
from PyQt5.QtGui import QResizeEvent, QMouseEvent
66
from PyQt5.QtCore import Qt, QPropertyAnimation, QEasingCurve, QRect
77

88
from Modules.Base.ModLogging import ModLogging, LoggingType as LT
@@ -13,47 +13,52 @@
1313
from FormMain_ui import Ui_FormMain
1414
from Controls.RoundShadow import RoundShadow
1515

16+
1617
class FormMain(RoundShadow):
1718
"""主窗口"""
1819

1920
def __init__(self):
2021
super().__init__()
2122
# 初始化日志
2223
self.logger = ModLogging(module_name="FormMain")
23-
24+
2425
# 设置窗口标志,确保最小化时显示在任务栏
25-
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Window | Qt.WindowSystemMenuHint | Qt.WindowMinimizeButtonHint)
26-
26+
self.setWindowFlags(
27+
Qt.FramelessWindowHint
28+
| Qt.Window
29+
| Qt.WindowSystemMenuHint
30+
| Qt.WindowMinimizeButtonHint
31+
)
32+
2733
# 窗口加载第一步:基础
2834
# 设置窗口大小
29-
self.resize(900, 550)
35+
self.resize(850, 500)
3036
self.logger.write("窗口加载第一步完成", LT.INFO)
31-
37+
3238
# 窗口加载第二步:加载 UI 控件
3339
# 创建一个容器widget
3440
self.container = QWidget(self)
3541
self.container.setGeometry(9, 9, self.width() - 18, self.height() - 18)
36-
42+
3743
# 设置UI
3844
self.ui = Ui_FormMain()
3945
self.ui.setupUi(self.container)
40-
4146

4247
self.logger.write("窗口加载第二步完成", LT.INFO)
4348

4449
# 窗口加载第三步:链接信号/槽(真的不用设置无边框)
4550
# 连接按钮事件
4651
self.ui.BtnExit.clicked.connect(self.close_window)
4752
self.ui.BtnMin.clicked.connect(self.minimize_window)
48-
53+
4954
# 记录窗口是否最大化
5055
self.is_maximized = False
5156
# 记录窗口正常状态下的位置和大小
5257
self.normal_geometry = self.geometry()
53-
58+
5459
# 初始化拖动相关变量
5560
self._drag_start_pos = None
56-
61+
5762
# 设置标题栏鼠标追踪
5863
self.ui.PanTitle.setMouseTracking(True)
5964
self.ui.PanTitle.mousePressEvent = self.PanTitle_mousePressEvent
@@ -64,33 +69,35 @@ def __init__(self):
6469

6570
self.logger.write("FormMain 加载完成", LT.INFO)
6671

67-
def PanTitle_mousePressEvent(self, event):
72+
def PanTitle_mousePressEvent(self, a0: QMouseEvent):
6873
"""处理标题栏鼠标按下事件"""
69-
if event.button() == Qt.LeftButton:
70-
self._drag_start_pos = event.globalPos() - self.pos()
71-
event.accept()
74+
if a0.button() == Qt.LeftButton:
75+
self._drag_start_pos = a0.globalPos() - self.pos()
76+
a0.accept()
7277

73-
def PanTitle_mouseMoveEvent(self, event):
78+
def PanTitle_mouseMoveEvent(self, a0: QMouseEvent):
7479
"""处理标题栏鼠标移动事件"""
7580
if self._drag_start_pos is not None:
76-
self.move(event.globalPos() - self._drag_start_pos)
77-
event.accept()
81+
self.move(a0.globalPos() - self._drag_start_pos)
82+
a0.accept()
7883

79-
def PanTitle_mouseReleaseEvent(self, event):
84+
def PanTitle_mouseReleaseEvent(self, a0: QMouseEvent):
8085
"""处理标题栏鼠标释放事件"""
81-
if event.button() == Qt.LeftButton:
86+
if a0.button() == Qt.LeftButton:
8287
self._drag_start_pos = None
83-
event.accept()
88+
a0.accept()
8489

8590
def resizeEvent(self, a0: QResizeEvent):
8691
"""处理窗口大小变化"""
8792
super().resizeEvent(a0)
8893
# 更新容器大小
8994
self.container.setGeometry(9, 9, self.width() - 18, self.height() - 18)
90-
95+
9196
# 更新面板大小
9297
self.ui.PanTitle.setGeometry(0, 0, self.container.width(), 40)
93-
self.ui.PanMain.setGeometry(0, 40, self.container.width(), self.container.height() - 40)
98+
self.ui.PanMain.setGeometry(
99+
0, 40, self.container.width(), self.container.height() - 40
100+
)
94101

95102
def close_window(self):
96103
"""处理窗口关闭(对应的信号:BtnExit.clicked)"""
@@ -111,23 +118,21 @@ def minimize_window(self):
111118
"""跨平台最小化窗口"""
112119
self.logger.write("按下按钮:BtnMin,正在尝试最小化窗口", LT.INFO)
113120
self.showMinimized()
114-
121+
115122
def toggle_maximize_window(self):
116123
"""切换窗口最大化/还原状态"""
117124
if self.isMaximized():
118125
self.restore_window()
119126
else:
120127
self.maximize_window()
121-
128+
122129
def maximize_window(self):
123130
"""跨平台最大化窗口"""
124131
self.logger.write("按下按钮:BtnMax,正在尝试最大化窗口", LT.INFO)
125132
# 保存当前窗口位置和大小(如果需要)
126133
self.showMaximized()
127-
134+
128135
def restore_window(self):
129136
"""跨平台还原窗口"""
130137
self.logger.write("按下按钮:BtnMax,正在尝试还原窗口", LT.INFO)
131138
self.showNormal()
132-
133-

Plain_Craft_Launcher_2/FormMain.ui

Lines changed: 0 additions & 75 deletions
This file was deleted.

Plain_Craft_Launcher_2/FormMain_ui.py

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,57 +11,72 @@
1111
from Controls.MyRoundButton import MyRoundButton
1212
from Modules.Base.ModSetup import ModSetup as Setup
1313

14+
1415
class Ui_FormMain(object):
16+
1517
def setupUi(self, FormMain: QtWidgets.QWidget):
1618
# 获取所有需要的设置项
1719
setup = Setup()
18-
size = setup.get_settings('size')
19-
corner_radius = setup.get_settings('corner_radius')
20-
bg_color = setup.get_settings('ColorBrush5')
21-
fg_color = setup.get_settings('ColorBrush2')
22-
20+
size = setup.size
21+
22+
corner_radius = setup.get_settings("corner_radius")
23+
bg_color = setup.get_settings("ColorBrush5")
24+
fg_color = setup.get_settings("ColorBrush2")
25+
2326
FormMain.setObjectName("FormMain")
2427
FormMain.resize(*size)
2528
FormMain.setBaseSize(QtCore.QSize(*size))
2629
FormMain.setStyleSheet(f"background-color: transparent; ")
2730
icon = QtGui.QIcon()
28-
icon.addPixmap(QtGui.QPixmap(":/.ico/icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
31+
icon.addPixmap(
32+
QtGui.QPixmap(":/.ico/icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off
33+
)
2934
FormMain.setWindowIcon(icon)
30-
35+
3136
# 标题栏 Panel
3237
self.PanTitle = QtWidgets.QFrame(FormMain)
33-
self.PanTitle.setGeometry(QtCore.QRect(0, 0, size[0], 40))
34-
self.PanTitle.setBaseSize(QtCore.QSize(size[0], 40))
35-
self.PanTitle.setStyleSheet(f"""
38+
self.PanTitle.setGeometry(QtCore.QRect(0, 0, size[0], 48))
39+
self.PanTitle.setBaseSize(QtCore.QSize(size[0], 48))
40+
self.PanTitle.setStyleSheet(
41+
f"""
3642
QFrame#PanTitle {{
3743
background-color: {fg_color};
3844
border-top-left-radius: {corner_radius}px;
3945
border-top-right-radius: {corner_radius}px;
4046
border-bottom: none;
4147
}}
42-
""")
43-
self.PanTitle.setFrameShape(QtWidgets.QFrame.NoFrame)
44-
self.PanTitle.setFrameShadow(QtWidgets.QFrame.Plain)
48+
"""
49+
)
50+
self.PanTitle.setFrameShape(QtWidgets.QFrame.NoFrame)
51+
self.PanTitle.setFrameShadow(QtWidgets.QFrame.Plain)
4552
self.PanTitle.setObjectName("PanTitle")
4653

4754
# 主 Panel
4855
self.PanMain = QtWidgets.QFrame(FormMain)
49-
self.PanMain.setGeometry(QtCore.QRect(0, 40, size[0], (size[1] - 40)))
50-
self.PanMain.setStyleSheet(f"""
56+
self.PanMain.setGeometry(QtCore.QRect(0, 48, size[0], (size[1] - 48)))
57+
self.PanMain.setStyleSheet(
58+
f"""
5159
QFrame#PanMain {{
5260
background-color: {bg_color};
5361
border-bottom-left-radius: {corner_radius}px;
5462
border-bottom-right-radius: {corner_radius}px;
5563
border-top: none;
5664
}}
57-
""")
58-
self.PanMain.setFrameShape(QtWidgets.QFrame.NoFrame)
59-
self.PanMain.setFrameShadow(QtWidgets.QFrame.Plain)
65+
"""
66+
)
67+
self.PanMain.setFrameShape(QtWidgets.QFrame.NoFrame)
68+
self.PanMain.setFrameShadow(QtWidgets.QFrame.Plain)
6069
self.PanMain.setObjectName("PanMain")
6170

6271
# 标题栏按钮 -- 退出
63-
self.BtnExit = MyRoundButton(self.PanTitle, svg_path="Images/BtnTitleClose.svg", size=(28, 28), tooltip="Exit", padding=(6, 6, -10, -10))
64-
self.BtnExit.setGeometry(QtCore.QRect((size[0] - 60), 4, 28, 28))
72+
self.BtnExit = MyRoundButton(
73+
self.PanTitle,
74+
svg_path="Images/BtnTitleClose.svg",
75+
size=(14, 14),
76+
tooltip="Exit",
77+
padding=(7, 7, -10, -10),
78+
)
79+
self.BtnExit.setGeometry(QtCore.QRect((size[0] - 50), 12, 13, 13))
6580
self.BtnExit.setObjectName("BtnExit")
6681

6782
# 标题栏按钮 -- 最小化
@@ -78,12 +93,12 @@ def setupUi(self, FormMain: QtWidgets.QWidget):
7893
self.SVGTitle.setStyleSheet("background-color: transparent;")
7994
self.SVGTitle.setObjectName("SVGTitle")
8095

81-
8296
self.retranslateUi(FormMain)
8397
QtCore.QMetaObject.connectSlotsByName(FormMain)
8498

8599
def retranslateUi(self, FormMain: QtWidgets.QWidget):
86100
_translate = QtCore.QCoreApplication.translate
87101
FormMain.setWindowTitle(_translate("FormMain", "Plain Craft Launcher 2"))
88102

103+
89104
from Resources import *

0 commit comments

Comments
 (0)