87 lines
2.9 KiB
Python
87 lines
2.9 KiB
Python
|
# 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)
|