LISHUZUOXUN_yangjiang/LSZXPagesLibrary/running_test_page.py

87 lines
2.9 KiB
Python
Raw Normal View History

2024-09-23 14:54:15 +08:00
# coding: gb2312
from PyQt5.QtCore import QTimer
from LSZXPagesLibrary.consensus import *
from LSZXPagesLibrary.pop_message_dialog import PopDialogMessage
from LSZXPagesLibrary.running_test_page_layout_define import RunningTestPageLayoutDefine
from PureBackend.global_execrise_backend import GEB
class RunningTestPage(RunningTestPageLayoutDefine):
def __init__(self):
super().__init__()
self.eb = GEB().get_geb()
self._person_list = None
# ע<><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD>İ<EFBFBD>ť
self.back_home_button.clicked.connect(self.back_home)
# ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
self.stop_button.clicked.connect(self.stop)
# <20><>ʱ<EFBFBD><CAB1><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
self.update_timer = QTimer(self)
self.update_timer.timeout.connect(self.realtime_display)
# <20><><EFBFBD><EFBFBD>
self.message_pop_windows = PopDialogMessage(self)
# ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD>
self.stop_exercise_pop_windows = PopDialogMessage(self)
# <20><><EFBFBD><EFBFBD>
self.message_pop_windows.connect(self.message_pop_commit)
# ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD>
self.stop_exercise_pop_windows.connect(self.stop_exercise_pop_commit)
def refresh(self):
# <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
exercise_type = self.data.get(EXERCISE_TYPE)
exercise_name = EXERCISE_TYPE_TABLE[exercise_type]
self.title_label.setText(exercise_name)
# <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ա
self._person_list = self.data.get(PERSON_LIST)
self.realtime_widget.set_person(self._person_list)
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ˢ<EFBFBD><CBA2>
self.realtime_display()
self.update_timer.start(500) # ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ĸ<CCB5><C4B8><EFBFBD>
self.realtime_widget.resume()
def realtime_display(self):
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
person_score = self.eb.running_score()
person_score = list(filter(
lambda x: x[ID] in [person_mes[ID] for person_mes in self.data.get(PERSON_LIST)],
person_score
))
self.realtime_widget.update_person(person_score)
def back_home(self):
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
self.eb.stop_running()
# ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
self.update_timer.stop()
# <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ĸ<CCB5><C4B8><EFBFBD>
self.realtime_widget.pause()
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳʱ<D2B3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
self.message_pop_windows.show("<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?")
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ť<EFBFBD>¼<EFBFBD>
def message_pop_commit(self):
# <20><>ת
self.jump2(HOME_PAGE)
def stop(self):
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳʱ<D2B3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
self.stop_exercise_pop_windows.show("<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?")
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ť<EFBFBD>¼<EFBFBD>
def stop_exercise_pop_commit(self):
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
self.eb.stop_running()
# ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
self.update_timer.stop()
# <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ĸ<CCB5><C4B8><EFBFBD>
self.realtime_widget.pause()
pkg = {
EXERCISE_TYPE: self.data[EXERCISE_TYPE],
PERSON_LIST: self.eb.get_running_all_score()
}
self.jump2(RUNNING_SCORE, pkg)