Skip to content

Commit d444680

Browse files
committed
修复发现的bug
1 parent efaab4a commit d444680

File tree

4 files changed

+37
-44
lines changed

4 files changed

+37
-44
lines changed

src/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def find_window(class_name, window_name):
7070
time.sleep(0.5)
7171
app.quit()
7272
else:
73-
localServer = QLocalServer()
73+
localServer = QLocalServer()
7474
localServer.listen(serverName)
7575
localServer.newConnection.connect(lambda: on_new_connection(localServer=localServer))
7676
mainWindow = mainWindowGUI.MainWindow()

src/mineSweeperGUI.py

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from PyQt5.QtCore import QTimer, QCoreApplication, Qt, QRect
33
from PyQt5.QtGui import QPixmap
44
# from PyQt5.QtWidgets import QLineEdit, QInputDialog, QShortcut
5-
from PyQt5.QtWidgets import QApplication, QFileDialog
5+
from PyQt5.QtWidgets import QApplication, QFileDialog, QWidget
66
import gameDefinedParameter
77
import superGUI, gameAbout, gameSettings, gameSettingShortcuts,\
88
captureScreen, mine_num_bar, videoControl, gameRecordPop
@@ -131,6 +131,9 @@ def pixSize(self):
131131
@pixSize.setter
132132
def pixSize(self, pixSize):
133133
pixSize = max(5, pixSize)
134+
pixSize = min(255, pixSize)
135+
pixSize = min(32767//self.column, pixSize)
136+
pixSize = min(32767//self.row, pixSize)
134137
if hasattr(self, "_pixSize") and pixSize == self._pixSize:
135138
return
136139
self.label.set_rcp(self.row, self.column, pixSize)
@@ -149,19 +152,14 @@ def pixSize(self, pixSize):
149152
# self.label.setFixedSize(QtCore.QSize(self.pixSize*self.column + 8, self.pixSize*self.row + 8))
150153

151154
self.reimportLEDPic(pixSize) # 重新导入图片,无磁盘io
152-
# if hasattr(self, "_pixSize"):
153-
# self._pixSize = pixSize
154-
# self.reimportLEDPic(pixSize) # 重新导入图片,无磁盘io
155-
# else:
156-
# self._pixSize = pixSize
157-
# self.mineUnFlagedNum = self.mineNum
158-
# self.importLEDPic(pixSize) # 导入图片,有磁盘io
159155
self.label_2.reloadFace(pixSize)
160156
self.set_face(14)
161157
self.showMineNum(self.mineUnFlagedNum)
162158
self.showTime(0)
163159
if hasattr(self, "_pixSize") and pixSize < self._pixSize:
160+
self._pixSize = pixSize
164161
self.minimumWindow()
162+
return
165163
self._pixSize = pixSize
166164

167165
@property
@@ -405,6 +403,7 @@ def mineAreaLeftRelease(self, i, j):
405403
self.start_time_unix_2 = QtCore.QDateTime.currentDateTime().\
406404
toMSecsSinceEpoch()
407405
self.timer_10ms.start()
406+
# 禁用双击修改指标名称公式
408407
self.score_board_manager.editing_row = -2
409408

410409
self.label.ms_board.step('lr', (i, j))
@@ -688,7 +687,7 @@ def dump_evf_file_data(self):
688687
self.label.ms_board.player_identifier = self.player_identifier
689688
self.label.ms_board.race_identifier = self.race_identifier
690689
self.label.ms_board.uniqueness_identifier = self.unique_identifier
691-
self.label.ms_board.country = country_name[self.country].upper()
690+
self.label.ms_board.country = "XX" if not self.country else country_name[self.country].upper()
692691
self.label.ms_board.device_uuid = hashlib.md5(bytes(str(uuid.getnode()).encode())).hexdigest().encode( "UTF-8" )
693692

694693
self.label.ms_board.generate_evf_v4_raw_data()
@@ -724,6 +723,8 @@ def save_evf_file(self):
724723
filename_level = "e_"
725724
else:
726725
filename_level = "c_"
726+
if self.game_state == "display" or self.game_state == "showdisplay":
727+
self.label.ms_board.current_time = 999999.9
727728
file_name = self.replay_path + '\\' + filename_level +\
728729
f'{self.label.ms_board.mode}' + '_' +\
729730
f'{self.label.ms_board.rtime:.3f}' +\
@@ -1061,11 +1062,7 @@ def action_NEvent(self):
10611062
if ui.alter:
10621063

10631064
self.pixSize = ui.pixSize
1064-
# for i in range(4):
1065-
# self.predefinedBoardPara[i]['pix_size'] = ui.pixSize
1066-
10671065
self.gameStart()
1068-
10691066
self.gameMode = ui.gameMode
10701067
self.auto_replay = ui.auto_replay
10711068
self.end_then_flag = ui.end_then_flag
@@ -1086,24 +1083,24 @@ def action_NEvent(self):
10861083
self.predefinedBoardPara[1]['attempt_times_limit'] = self.attempt_times_limit
10871084
self.predefinedBoardPara[1]['board_constraint'] = self.board_constraint
10881085
self.predefinedBoardPara[1]['gamemode'] = ui.gameMode
1089-
# self.predefinedBoardPara[1]['pix_size'] = ui.pixSize
10901086
elif (self.row, self.column, self.mineNum) == (16, 16, 40):
10911087
self.predefinedBoardPara[2]['attempt_times_limit'] = self.attempt_times_limit
10921088
self.predefinedBoardPara[2]['board_constraint'] = self.board_constraint
10931089
self.predefinedBoardPara[2]['gamemode'] = ui.gameMode
1094-
# self.predefinedBoardPara[2]['pix_size'] = ui.pixSize
10951090
elif (self.row, self.column, self.mineNum) == (16, 30, 99):
10961091
self.predefinedBoardPara[3]['attempt_times_limit'] = self.attempt_times_limit
10971092
self.predefinedBoardPara[3]['board_constraint'] = self.board_constraint
10981093
self.predefinedBoardPara[3]['gamemode'] = ui.gameMode
1099-
# self.predefinedBoardPara[3]['pix_size'] = ui.pixSize
11001094
else:
11011095
self.predefinedBoardPara[0]['attempt_times_limit'] = self.attempt_times_limit
11021096
self.predefinedBoardPara[0]['board_constraint'] = self.board_constraint
11031097
self.predefinedBoardPara[0]['gamemode'] = ui.gameMode
1104-
# self.predefinedBoardPara[0]['pix_size'] = ui.pixSize
11051098

11061099
self.mainWindow.setWindowOpacity(ui.transparency / 100)
1100+
for child in self.mainWindow.findChildren(QWidget):
1101+
# 设置子窗口的透明度
1102+
child.setWindowOpacity(ui.transparency / 100)
1103+
11071104
self.score_board_manager.with_namespace({
11081105
"race_identifier": ui.race_identifier,
11091106
"mode": self.gameMode,
@@ -1413,7 +1410,8 @@ def play_video(self, video):
14131410
self.video_time_step = 0.01 # 录像时间的步长,定时器始终是10毫秒
14141411
self.label.paint_cursor = True
14151412
self.video_playing = True # 录像正在播放
1416-
self.timer_video.start(10)
1413+
# 禁用双击修改指标名称公式
1414+
self.score_board_manager.editing_row = -2
14171415

14181416
video.video_playing_pix_size = self.label.pixSize
14191417
self.label.ms_board = video
@@ -1422,6 +1420,8 @@ def play_video(self, video):
14221420
self.label_info.setText(self.label.ms_board.player_identifier)
14231421
# 改成录像的国旗
14241422
self.set_country_flag(self.label.ms_board.country)
1423+
1424+
self.timer_video.start(10)
14251425

14261426

14271427
def video_playing_step(self):
@@ -1558,17 +1558,10 @@ def closeEvent_(self):
15581558
else:
15591559
self.game_setting.set_value("CUSTOM/gamemode", str(self.gameMode))
15601560
self.game_setting.set_value("CUSTOM/pixsize", str(self.pixSize))
1561-
1561+
15621562
self.game_setting.sync()
1563-
15641563
self.record_setting.sync()
15651564

1566-
# conf = configparser.ConfigParser()
1567-
# conf.read(self.record_path, encoding='utf-8')
1568-
# for key_name in self.record_key_name_list:
1569-
# conf[key_name] = self.record[key_name]
1570-
# with open(self.record_path, 'w') as configfile:
1571-
# conf.write(configfile) # 将对象写入文件
15721565

15731566

15741567

src/superGUI.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def __init__(self, file_path):
2323
self.file_path = file_path
2424
# QSettings的键名是无序的,无法使用
2525
self.config = configparser.ConfigParser()
26+
self.config.default_section = ""
2627
# 如果文件不存在则创建
2728
if not os.path.exists(file_path):
2829
with open(file_path, 'w', encoding="utf-8"):
@@ -53,7 +54,7 @@ def value(self, key, default=None, value_type=str):
5354
:return: 获取到的值或默认值
5455
"""
5556
section, key = self._parse_key(key)
56-
if section != "DEFAULT" and not self.config.has_section(section):
57+
if not self.config.has_section(section):
5758
return default
5859
if self.config.has_option(section, key):
5960
if value_type == int:
@@ -90,7 +91,7 @@ def get_or_set_section(self, section, default: List[Tuple[str,str]],
9091
:param force_add: 是否强制补全default中的所有键
9192
:return: section 的内容
9293
"""
93-
if section != "DEFAULT" and not self.config.has_section(section):
94+
if not self.config.has_section(section):
9495
self.config.add_section(section)
9596
for (key, value) in default:
9697
self.config.set(section, str(key), str(value))
@@ -111,7 +112,7 @@ def set_value(self, key, value):
111112
:param value: 要设置的值
112113
"""
113114
section, key = self._parse_key(key)
114-
if section != "DEFAULT" and not self.config.has_section(section):
115+
if not self.config.has_section(section):
115116
self.config.add_section(section)
116117
self.config.set(section, key, str(value))
117118

@@ -138,7 +139,7 @@ def set_section(self, section, section_value: List[Tuple[str,str]]):
138139
key_set.add(new_key)
139140
section_value[idv] = (new_key, v[1])
140141

141-
if section != "DEFAULT" and not self.config.has_section(section):
142+
if not self.config.has_section(section):
142143
self.config.add_section(section)
143144

144145
# 遍历并删除每个 option
@@ -342,7 +343,7 @@ def readPredefinedBoardPara(self):
342343
("attempt_times_limit", 100000),
343344
]
344345
s = self.game_setting.get_or_set_section("CUSTOM", s, True)
345-
self.predefinedBoardPara[0] = { k: int(v) if v.isdigit() else v for (k, v) in s }
346+
self.predefinedBoardPara[0] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
346347
s = [
347348
("gamemode", 0),
348349
("row", 8),
@@ -353,7 +354,7 @@ def readPredefinedBoardPara(self):
353354
("attempt_times_limit", 100000),
354355
]
355356
s = self.game_setting.get_or_set_section("BEGINNER", s, True)
356-
self.predefinedBoardPara[1] = { k: int(v) if v.isdigit() else v for (k, v) in s }
357+
self.predefinedBoardPara[1] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
357358
s = [
358359
("gamemode", 0),
359360
("row", 16),
@@ -364,18 +365,18 @@ def readPredefinedBoardPara(self):
364365
("attempt_times_limit", 100000),
365366
]
366367
s = self.game_setting.get_or_set_section("INTERMEDIATE", s, True)
367-
self.predefinedBoardPara[2] = { k: int(v) if v.isdigit() else v for (k, v) in s }
368+
self.predefinedBoardPara[2] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
368369
s = [
369370
("gamemode", 0),
370371
("row", 16),
371372
("column", 30),
372373
("pixsize", 20),
373-
("mine_num", 90),
374+
("mine_num", 99),
374375
("board_constraint", ""),
375376
("attempt_times_limit", 100000),
376377
]
377378
s = self.game_setting.get_or_set_section("EXPERT", s, True)
378-
self.predefinedBoardPara[3] = { k: int(v) if v.isdigit() else v for (k, v) in s }
379+
self.predefinedBoardPara[3] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
379380
s = [
380381
("gamemode", 5),
381382
("row", 16),
@@ -386,7 +387,7 @@ def readPredefinedBoardPara(self):
386387
("attempt_times_limit", 100000),
387388
]
388389
s = self.game_setting.get_or_set_section("CUSTOM_PRESET_4", s, True)
389-
self.predefinedBoardPara[4] = { k: int(v) if v.isdigit() else v for (k, v) in s }
390+
self.predefinedBoardPara[4] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
390391
s = [
391392
("gamemode", 5),
392393
("row", 16),
@@ -397,7 +398,7 @@ def readPredefinedBoardPara(self):
397398
("attempt_times_limit", 100000),
398399
]
399400
s = self.game_setting.get_or_set_section("CUSTOM_PRESET_5", s, True)
400-
self.predefinedBoardPara[5] = { k: int(v) if v.isdigit() else v for (k, v) in s }
401+
self.predefinedBoardPara[5] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
401402
s = [
402403
("gamemode", 5),
403404
("row", 24),
@@ -408,7 +409,7 @@ def readPredefinedBoardPara(self):
408409
("attempt_times_limit", 100000),
409410
]
410411
s = self.game_setting.get_or_set_section("CUSTOM_PRESET_6", s, True)
411-
self.predefinedBoardPara[6] = { k: int(v) if v.isdigit() else v for (k, v) in s }
412+
self.predefinedBoardPara[6] = { k: int(v) if isinstance(v, str) and v.isdigit() else v for (k, v) in s }
412413

413414

414415
def minimumWindow(self):

src/ui/uiComponents.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,10 @@ def __init__(self, parent=None):
163163
def reloadFace(self, pixSize):
164164
# 重新修改脸的大小,叫rescale_face更妥
165165
self.pixSize = pixSize
166-
self.pixmap1 = QPixmap(self.smilefacedown_path).scaled(int(self.pixSize * 1.5), int(self.pixSize * 1.5))
167-
self.pixmap2 = QPixmap(self.smileface_path).scaled(int(self.pixSize * 1.5), int(self.pixSize * 1.5))
168-
# self.resize(QtCore.QSize(int(self.pixSize * 1.5), int(self.pixSize * 1.5)))
169-
self.setMinimumSize(QtCore.QSize(int(self.pixSize * 1.5), int(self.pixSize * 1.5)))
170-
self.setMaximumSize(QtCore.QSize(int(self.pixSize * 1.5), int(self.pixSize * 1.5)))
166+
self.pixmap1 = QPixmap(self.smilefacedown_path).scaled(int(pixSize * 1.5), int(pixSize * 1.5))
167+
self.pixmap2 = QPixmap(self.smileface_path).scaled(int(pixSize * 1.5), int(pixSize * 1.5))
168+
self.setMinimumSize(QtCore.QSize(int(pixSize * 1.5), int(pixSize * 1.5)))
169+
self.setMaximumSize(QtCore.QSize(int(pixSize * 1.5), int(pixSize * 1.5)))
171170

172171
def setPath(self, r_path):
173172
# 告诉脸,相对路径

0 commit comments

Comments
 (0)