Skip to content

Commit e748eb3

Browse files
committed
configs名称更改
使用新的单项设置组件 优化设置保存GUI代码
1 parent f63e25d commit e748eb3

6 files changed

Lines changed: 28 additions & 34 deletions

File tree

Gui/ServerListGui.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ def __init__(self, master: Misc, logger: Logger):
226226
self.server_filter = ServerFilter(self) # 服务器筛选器
227227
self.sep = Separator(self, orient=HORIZONTAL) # 分割线
228228
self.servers_frame = ScrolledFrame(self, autohide=True) # 装服务器的容器
229-
self.empty_tip = Label(self, text="没有服务器", font=(Vars.user_settings_loader.configs['font'], 25)) # 提示
229+
self.empty_tip = Label(self, text="没有服务器", font=(Vars.user_settings_loader.configs['global_font'], 25)) # 提示
230230
self.record_bar = RecordBar(self, self) # 保存加载功能
231231
self.servers_info = ServerInfoFrame(self.record_bar) # 服务器数量信息
232232

@@ -332,7 +332,7 @@ def __init__(self, master: Misc, data: ServerInfo):
332332

333333
self.favicon = Label(self)
334334
self.MOTD = MOTD(self)
335-
self.base_info = Label(self, font=(Vars.user_settings_loader.configs['font'], 9))
335+
self.base_info = Label(self, font=(Vars.user_settings_loader.configs['global_font'], 9))
336336

337337
self.events_add()
338338
self.pack_weights()

Gui/SettingsFrame.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import sys
2+
import ttkbootstrap
23

34
from ttkbootstrap.scrolled import ScrolledFrame
45

@@ -17,6 +18,9 @@ def __init__(self, master: Misc, text: str, name: str, value: Any):
1718
elif isinstance(value, str):
1819
self.variable = StringVar(self, value=value, name=name)
1920
self.widget = Entry(self, textvariable=self.variable)
21+
elif isinstance(value, int):
22+
self.variable = IntVar(self, value=value, name=name)
23+
self.widget = ttkbootstrap.Spinbox(self, textvariable=self.variable, to=sys.maxsize)
2024
self.label.pack(side=LEFT)
2125
self.widget.pack(side=LEFT, padx=5)
2226

@@ -35,9 +39,9 @@ def __init__(self, master: Misc):
3539
"if_version_name_shown_as_label": "将 VersionName 显示为纯文本格式",
3640
"theme_name": "主题 ( 不建议在此处修改 )",
3741
"ping_before_scan": "扫描之前先检测连通性",
38-
"use_legacy_font": "使用原先的旧版字体 ( 任何渲染问题开发者没有义务修复 )",
39-
"font": "字体",
40-
"max_thread_number": "扫描时允许的最大线程数"
42+
"global_font": "字体",
43+
"max_thread_number": "扫描时允许的最大线程数",
44+
"MOTD_use_unicode_font": "MOTD全部使用Unifont字体显示"
4145
}
4246

4347
self.config_frame = ScrolledFrame(self)
@@ -56,10 +60,6 @@ def pack_widgets(self):
5660
for sitting_frame in self.configs.values():
5761
sitting_frame.grid(row=row, column=0, sticky=W)
5862
row += 1
59-
for i in range(len(self.int_settings_spinbox)):
60-
self.int_settings_spinbox[i].grid(column=1, row=row, sticky=W)
61-
self.int_settings_label[i].grid(column=0, row=row, sticky=W)
62-
row += 1
6363
self.confirm_button.pack(anchor=SE, side=RIGHT)
6464
self.update_button.pack(anchor=SE, side=RIGHT, padx=5)
6565

Gui/UserInterface.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,14 @@
1010

1111

1212
def set_default_font():
13-
font.nametofont("TkDefaultFont").config(family=Vars.user_settings_loader.configs['font'], size=10)
14-
15-
16-
def load_unifont():
17-
from Libs.FontLoader import add_font
18-
19-
try:
20-
add_font("assets/Unifont.otf")
21-
except FileNotFoundError: # 若字体文件不存在则退出
22-
print("Unifont字体文件丢失", file=stderr)
23-
return
13+
font.nametofont("TkDefaultFont").config(family=Vars.user_settings_loader.configs['global_font'], size=10)
2414

2515

2616
class Title(Label):
2717
def __init__(self, master: Misc):
2818
super(Title, self).__init__(master)
2919
self.configure(text="Minecraft服务器扫描器")
30-
self.configure(font=(Vars.user_settings_loader.configs['font'], 24))
20+
self.configure(font=(Vars.user_settings_loader.configs['global_font'], 24))
3121

3222

3323
class TitleBar(Frame):

Gui/Widgets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def return_font():
7171
Notes:
7272
有概率会引发 RuntimeError, 原因未知
7373
"""
74-
if Vars.user_settings_loader.configs['use_legacy_font']:
74+
if Vars.user_settings_loader.configs['MOTD_use_unicode_font']:
7575
if "Unifont" not in font.families():
7676
custom_font = Font(file="assets/Unifont.otf", family="Unifont")
7777
else:

Libs/FontLoader.py

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

Libs/Vars.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ def read_config_file_list():
129129
global server_addresses
130130

131131
try:
132+
if not exists(UserAddressOperator.user_address_json):
133+
with open(UserAddressOperator.user_address_json, "w+", encoding="utf-8") as f:
134+
f.write("{\n\t\"address_list\": []\n}")
132135
with open(UserAddressOperator.user_address_json, "r", encoding="utf-8") as rfp:
133136
json_data: dict = json.loads(rfp.read())
134137
address_list: List[str] = json_data.get('address_list')
@@ -194,11 +197,22 @@ def __init__(self):
194197
return
195198
with open(self.config_path, "r", encoding="utf-8") as f:
196199
self.configs = {**self.configs, **json.load(f)} # 酷炫就完事了 实际含义是拼接两个字典 并且有重复时遵从后者
200+
for name, value in self.configs.items(): # 旧版适配防报错
201+
if name == "font":
202+
self.configs.pop(name)
203+
self.configs["global_font"] = value
204+
elif name == "use_legacy_font":
205+
self.configs.pop(name)
206+
self.configs["MOTD_use_unicode_font"] = value
197207

198208
@staticmethod
199209
def defaults() -> Dict:
200-
return {'if_version_name_shown_as_label': False, 'theme_name': "darkly", 'ping_before_scan': True,
201-
'use_legacy_font': False, "font": "微软雅黑", "max_thread_number": 256}
210+
return {'if_version_name_shown_as_label': False,
211+
'theme_name': "darkly",
212+
'ping_before_scan': True,
213+
"global_font": "微软雅黑",
214+
"max_thread_number": 256,
215+
"MOTD_use_unicode_font": True}
202216

203217

204218
class UserSettingsSaver:

0 commit comments

Comments
 (0)