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

Commit 00072fd

Browse files
committed
2 parents ca94232 + 41e0f9e commit 00072fd

6 files changed

Lines changed: 56 additions & 45 deletions

File tree

.gitignore

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1+
# Editor Config
12
idea/
23
.vs/
3-
venv/
4+
5+
# Python Environment & Cache
6+
**/*venv*/
47
__pycache__/
58
*.pyc
6-
Plain_Craft_Launcher_2/.minecraft/
7-
Plain_Craft_Launcher_2/logs/
8-
Plain_Craft_Launcher_2/Modules/Minecraft/logs
9+
10+
# Log
11+
**/logs/
12+
Plain_Craft_Launcher_2/data/*.log
13+
14+
# Debugging Files
15+
Plain_Craft_Launcher_2/.minecraft/

Plain_Craft_Launcher_2/Controls/RoundShadow.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
from PyQt5.QtWidgets import *
2-
from PyQt5.QtCore import *
3-
from PyQt5.QtGui import *
1+
# from PyQt5.QtWidgets import *
2+
# from PyQt5.QtCore import *
3+
# from PyQt5.QtGui import *
4+
5+
from PyQt5.QtWidgets import QWidget
6+
from PyQt5.QtCore import Qt, QRectF
7+
from PyQt5.QtGui import QPainter, QPainterPath, QBrush, QColor, QPaintEvent
48

59
class RoundShadow(QWidget):
610
"""圆角边框类"""
711

8-
def __init__(self, parent=None):
9-
super(RoundShadow, self).__init__(parent)
12+
def __init__(self):
13+
super().__init__()
1014
self.border_width = 8
1115
# 设置 窗口无边框和背景透明 *必须
1216
self.setAttribute(Qt.WA_TranslucentBackground)
1317
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Window)
1418

15-
def paintEvent(self, event):
19+
def paintEvent(self, a0: QPaintEvent):
1620
# 阴影
1721
path = QPainterPath()
1822
path.setFillRule(Qt.WindingFill)

Plain_Craft_Launcher_2/FormMain.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
from PyQt5.QtWidgets import *
2-
from PyQt5.QtCore import *
3-
from PyQt5.QtGui import *
4-
51
import sys
62
import os
3+
from PyQt5.QtWidgets import QApplication, QWidget
4+
from PyQt5.QtGui import QResizeEvent
75

86
# 设置工作目录为当前文件所在目录
97
os.chdir(os.path.dirname(os.path.abspath(__file__)))
@@ -14,8 +12,8 @@
1412
class FormMain(RoundShadow):
1513
"""主窗口"""
1614

17-
def __init__(self, parent=None):
18-
super().__init__(parent)
15+
def __init__(self):
16+
super().__init__()
1917
# 设置窗口大小
2018
self.resize(900, 550)
2119

@@ -28,11 +26,11 @@ def __init__(self, parent=None):
2826
self.ui.setupUi(self.container)
2927

3028
# 添加窗口大小变化事件处理
31-
self.resizeEvent = self.onResize
32-
33-
def onResize(self, event):
29+
# 通过重写resizeEvent方法处理窗口大小变化
30+
31+
def resizeEvent(self, a0: QResizeEvent):
3432
"""处理窗口大小变化"""
35-
super().resizeEvent(event)
33+
super().resizeEvent(a0)
3634
# 更新容器大小
3735
self.container.setGeometry(9, 9, self.width() - 18, self.height() - 18)
3836

Plain_Craft_Launcher_2/FormMain_ui.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from PyQt5 import QtCore, QtGui, QtWidgets
22
from Modules.Base.ModSetup import ModSetup as Setup
33

4-
54
class Ui_FormMain(object):
6-
def setupUi(self, FormMain):
5+
def setupUi(self, FormMain: QtWidgets.QWidget):
76
FormMain.setObjectName("FormMain")
87
FormMain.resize(900, 550)
98
FormMain.setBaseSize(QtCore.QSize(900, 550))
@@ -27,7 +26,8 @@ def setupUi(self, FormMain):
2726
self.retranslateUi(FormMain)
2827
QtCore.QMetaObject.connectSlotsByName(FormMain)
2928

30-
def retranslateUi(self, FormMain):
29+
def retranslateUi(self, FormMain: QtWidgets.QWidget):
3130
_translate = QtCore.QCoreApplication.translate
3231
FormMain.setWindowTitle(_translate("FormMain", "Plain Craft Launcher 2"))
32+
3333
from Resources import *

Plain_Craft_Launcher_2/Modules/Base/ModLogging.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@
88
def now() -> str:
99
return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
1010

11+
class LoggingType(Enum):
12+
INFO = 'Info'
13+
WARN = 'Warn'
14+
ERROR = 'Error'
15+
FATAL = 'Fatal'
16+
17+
def __str__(self) -> str:
18+
return self.value
19+
20+
def __repr__(self) -> str:
21+
return self.value
22+
1123
class ModLogging():
1224
def __init__(
1325
self,
@@ -42,7 +54,7 @@ def __init__(
4254
def write(
4355
self,
4456
message:str,
45-
log_level:str
57+
log_level:LoggingType
4658
) -> None:
4759
r'''
4860
Writing A Log Into File
@@ -63,16 +75,16 @@ def write(
6375
'Error': ' ',
6476
'Fatal': ' '
6577
}
66-
log_level = str(log_level)
78+
log_level_str = str(log_level)
6779
with open(f'{launcher_data_folder}/Log1.log', 'a', encoding='utf-8') as f:
68-
f.write(f'[{log_level}]{space_map[log_level]}[{self.module_name}] {now()} > {message}\n')
80+
f.write(f'[{log_level_str}]{space_map[log_level_str]}[{self.module_name}] {now()} > {message}\n')
6981
color_map = {
7082
'Info': green,
7183
'Warn': yellow,
7284
'Error': red,
7385
'Fatal': red
7486
}
75-
print(f'{color_map[log_level]}[{log_level}]{clear}{space_map[log_level]}[{self.module_name}] {now()} > {message}')
87+
print(f'{color_map[log_level_str]}[{log_level_str}]{clear}{space_map[log_level_str]}[{self.module_name}] {now()} > {message}')
7688
except Exception as ex:
7789
time = now()
7890
print(f'[{red}FATAL{clear}] [Logging] {time} > 记录日志时发生错误')
@@ -83,17 +95,7 @@ def write(
8395
fatal.write(f'[FATAL] 错误类型:{type(ex).__name__}\n')
8496
fatal.write(f'[FATAL] 错误堆栈信息:\n{str(getTraceBack())}\n')
8597

86-
class LoggingType(Enum):
87-
INFO = 'Info'
88-
WARN = 'Warn'
89-
ERROR = 'Error'
90-
FATAL = 'Fatal'
91-
92-
def __str__(self) -> str:
93-
return self.value
94-
95-
def __repr__(self) -> str:
96-
return self.value
98+
9799

98100
# Console Color Code, using f-string to insert, like {red}[Error]{clear}Exception
99101
clear = '\033[0m'

Plain_Craft_Launcher_2/Modules/Base/ModSetup.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json
2-
from ModLogging import ModLogging, LoggingType as LT
3-
2+
from typing import Any
3+
from .ModLogging import ModLogging, LoggingType as LT
44

55
class ModSetup:
66
"""写入/读取设置相关的类"""
@@ -16,7 +16,7 @@ def setup_settings(self):
1616

1717
self.logger.write("设置初始化完成", LT.INFO)
1818

19-
def load_settings(self, file_path="."):
19+
def load_settings(self, file_path:str="./data/Config.json"):
2020
"""读取已经存储的设置"""
2121
try:
2222
with open(file_path, "r") as f:
@@ -29,19 +29,19 @@ def load_settings(self, file_path="."):
2929
self.logger.write("设置文件未找到,进行初始化", LT.INFO)
3030
self.setup_settings()
3131

32-
def save_settings(self, file_path="."):
32+
def save_settings(self, file_path:str="./data/Config.json"):
3333
"""保存设置"""
3434
settings = self.__dict__
3535
with open(file_path, "w") as f:
3636
json.dump(settings, f)
3737

3838
self.logger.write("设置文件保存成功", LT.INFO)
3939

40-
def get_settings(self, setting):
40+
def get_settings(self, setting: str):
4141
"""获取设置"""
4242
return getattr(self, setting, None)
43-
44-
def set_settings(self, setting, value):
43+
44+
def set_settings(self, setting: str, value: Any) -> None:
4545
"""设置设置"""
4646
setattr(self, setting, value)
4747
self.save_settings()

0 commit comments

Comments
 (0)