205 lines
7.5 KiB
Python
205 lines
7.5 KiB
Python
|
# coding: gb2312
|
|||
|
"""**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>**ҳ<><D2B3><EFBFBD><EFBFBD>"""
|
|||
|
from PyQt5.QtWidgets import QLabel
|
|||
|
|
|||
|
HOME_PAGE = "home_page"
|
|||
|
PICK_UP_PAGE = "pick_up_page"
|
|||
|
PREPARE_PAGE = "prepare_page"
|
|||
|
EXERCISE_PAGE = "exercise_page"
|
|||
|
RUNNING_PAGE = "running_page"
|
|||
|
BASE_STATION_PAGE = "base_station_page"
|
|||
|
RUNNING_PICK_UP = "running_pick_up"
|
|||
|
RUNNING_TEST_PAGE = "running_test_page"
|
|||
|
RUNNING_CONFIG = "running_config"
|
|||
|
RUNNING_SCORE = "running_score"
|
|||
|
|
|||
|
"""**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>"""
|
|||
|
ALL = "all"
|
|||
|
FINISHED = "finished"
|
|||
|
UNFINISHED = "unfinished"
|
|||
|
PICK_UP_TYPE_TABLE = {
|
|||
|
ALL: "ȫ<EFBFBD><EFBFBD>",
|
|||
|
FINISHED: "<EFBFBD>ѿ<EFBFBD>",
|
|||
|
UNFINISHED: "δ<EFBFBD><EFBFBD>"
|
|||
|
}
|
|||
|
PICK_UP_TYPE_LIST = [ALL, FINISHED, UNFINISHED]
|
|||
|
|
|||
|
|
|||
|
# <20><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6>巽<EFBFBD><E5B7BD>
|
|||
|
def _person_select_func(person_list):
|
|||
|
return {
|
|||
|
person_mes[ID]: {
|
|||
|
**person_mes,
|
|||
|
IS_CHOOSE: False
|
|||
|
}
|
|||
|
for person_mes in person_list
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
PERSON_SELECT_FUNC = _person_select_func
|
|||
|
|
|||
|
# <20><>Աɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|||
|
PICK_UP_TYPE_FILTER = {
|
|||
|
ALL: lambda person_list: list(filter(
|
|||
|
lambda person_mes: True,
|
|||
|
person_list
|
|||
|
)),
|
|||
|
# <20><>ÿ<EFBFBD><C3BF><EFBFBD>ˣ<EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD>ɼ<EFBFBD><C9BC>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ա
|
|||
|
FINISHED: lambda person_list: list(filter(
|
|||
|
lambda person_mes:
|
|||
|
person_mes[SCORE] is not None and person_mes[COUNT] is not None,
|
|||
|
person_list
|
|||
|
)),
|
|||
|
# <20><>ÿ<EFBFBD><C3BF><EFBFBD>ˣ<EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ա
|
|||
|
UNFINISHED: lambda person_list: list(filter(
|
|||
|
lambda person_mes:
|
|||
|
person_mes[SCORE] is None or person_mes[COUNT] is None,
|
|||
|
person_list
|
|||
|
))
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
def _set_person_widget_style(label_widget, person_mes):
|
|||
|
if not person_mes[IS_CHOOSE]:
|
|||
|
# <20><><EFBFBD><EFBFBD>δ<EFBFBD>μӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
if not person_mes[SCORE]:
|
|||
|
label_widget.setText(
|
|||
|
"""
|
|||
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #409eff;'>
|
|||
|
<img src='assets/blue_avatar.png' width='22' />{}</div>
|
|||
|
<table style='border: 1px solid #409eff; border-collapse: collapse;margin-left:15px;
|
|||
|
margin-top:5px;border-radius:4px'>
|
|||
|
<tr><td style='font: 18px \"Microsoft YaHei UI\";
|
|||
|
background-color: #ecf5ff;border: 1px solid #409eff;padding:4 40 4 50;
|
|||
|
border-radius:4px;'><3E><><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
|
|||
|
""".format(person_mes[NAME], person_mes[ID])
|
|||
|
)
|
|||
|
label_widget.setStyleSheet(
|
|||
|
"border:1px solid #409eff;"
|
|||
|
"margin:6px;"
|
|||
|
"border-radius:4px;"
|
|||
|
"padding:15 0 15 0;"
|
|||
|
)
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD>Ѳμӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
else:
|
|||
|
label_widget.setText(
|
|||
|
"""
|
|||
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #f56c6c;'>
|
|||
|
<img src='assets/pink_avatar.png' width='22' />{}</div>
|
|||
|
<table style='border: 1px solid #f56c6c;
|
|||
|
border-collapse: collapse;margin-left:15px;margin-top:5px;border-radius:4px'>
|
|||
|
<tr><td style='font: 18px \"Microsoft YaHei UI\";
|
|||
|
background-color: #fef0f0;border: 1px solid #f56c6c;
|
|||
|
padding:4 40 4 50;border-radius:4px;'><3E><><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
|
|||
|
<div style='font: 16px \"Microsoft YaHei UI\";text-align:center;color: #222222;
|
|||
|
margin-top: 5px;'>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span style='font: 600 17px;'>{}</span>
|
|||
|
<span style='font: 16px \"Microsoft YaHei UI\";text-align:center;color: #222222;'>
|
|||
|
<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><span style='font: 600 17px;'>{}</span></span></div>
|
|||
|
""".format(person_mes[NAME], person_mes[ID], person_mes[COUNT], person_mes[SCORE])
|
|||
|
)
|
|||
|
label_widget.setStyleSheet(
|
|||
|
"border:1px solid #f56c6c;"
|
|||
|
"margin:6px;"
|
|||
|
"border-radius:4px;"
|
|||
|
"padding:15 0 15 0;"
|
|||
|
)
|
|||
|
else:
|
|||
|
# <20><><EFBFBD><EFBFBD>δ<EFBFBD>μӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
if not person_mes[SCORE]:
|
|||
|
label_widget.setText(
|
|||
|
"""
|
|||
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #ffffff;'>
|
|||
|
<img src='assets/white_avatar.png' width='22' />{}</div>
|
|||
|
<table style='border: 1px solid #409eff; border-collapse: collapse;
|
|||
|
margin-left:15px;margin-top:5px;border-radius:4px'><tr>
|
|||
|
<td style='font: 18px \"Microsoft YaHei UI\";background-color: #409eff;
|
|||
|
border: 1px solid #ffffff;padding:4 40 4 50;border-radius:4px;color:#ffffff;'>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
|
|||
|
""".format(person_mes[NAME], person_mes[ID])
|
|||
|
)
|
|||
|
label_widget.setStyleSheet(
|
|||
|
"background-color:#409eff;"
|
|||
|
"margin:6px;"
|
|||
|
"border-radius:4px;"
|
|||
|
"padding:15 0 15 0;"
|
|||
|
)
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD>Ѳμӿ<CEBC><D3BF>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
else:
|
|||
|
label_widget.setText(
|
|||
|
"""
|
|||
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #ffffff;'>
|
|||
|
<img src='assets/white_avatar.png' width='22' />{}</div>
|
|||
|
<table style='border: 1px solid #f56c6c; border-collapse: collapse;
|
|||
|
margin-left:15px;margin-top:5px;border-radius:4px'><tr>
|
|||
|
<td style='border: 1px solid #ffffff;background-color:#409eff;
|
|||
|
color:#ffffff;font: 18px \"Microsoft YaHei UI\";padding:4 40 4 50;
|
|||
|
border-radius:4px;'><3E><><EFBFBD>ţ<EFBFBD>{}</td></tr></table>
|
|||
|
<div style='font: 16px \"Microsoft YaHei UI\";text-align:center;
|
|||
|
color: #ffffff;margin-top: 5px;'><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span style='font: 600 17px;'>{}</span>
|
|||
|
<span style='font: 16px \"Microsoft YaHei UI\";
|
|||
|
text-align:center;color: #ffffff;'> <3B>ɼ<EFBFBD><C9BC><EFBFBD>
|
|||
|
<span style='font: 600 17px;'>{}</span></span></div>
|
|||
|
""".format(person_mes[NAME], person_mes[ID], person_mes[COUNT], person_mes[SCORE])
|
|||
|
)
|
|||
|
label_widget.setStyleSheet(
|
|||
|
"background-color:#409eff;"
|
|||
|
"margin:6px;"
|
|||
|
"border-radius:4px;"
|
|||
|
"padding:15 0 15 0;"
|
|||
|
)
|
|||
|
return label_widget
|
|||
|
|
|||
|
|
|||
|
SET_PERSON_WIDGET_STYLE = _set_person_widget_style
|
|||
|
|
|||
|
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
|||
|
def _get_person_widget_text(person_mes):
|
|||
|
label_widget = QLabel()
|
|||
|
return SET_PERSON_WIDGET_STYLE(label_widget, person_mes)
|
|||
|
|
|||
|
|
|||
|
GET_PERSON_WIDGET_TEXT = _get_person_widget_text
|
|||
|
|
|||
|
"""**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>"""
|
|||
|
PERSON_LIST = "person_list"
|
|||
|
NAME = "name"
|
|||
|
ID = "id"
|
|||
|
SCORE = "score"
|
|||
|
COUNT = "count"
|
|||
|
IS_CHOOSE = "is_choose"
|
|||
|
CLASS = "class"
|
|||
|
BAND_ID = "band_id"
|
|||
|
PERCENTAGE = "percentage"
|
|||
|
STATE = "state"
|
|||
|
FINISH_MES = 'finish'
|
|||
|
HR = "hr"
|
|||
|
BO = "bo"
|
|||
|
RANK = "rank"
|
|||
|
ROUND = "round"
|
|||
|
TOTAL_TIME = 'total_time'
|
|||
|
ROUND_LIST = "round_list"
|
|||
|
"""**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>**<2A><>ѵ<EFBFBD><D1B5><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>"""
|
|||
|
EXERCISE_TYPE = "exercise_type"
|
|||
|
SIT_UP = "sit_up"
|
|||
|
PULL_UP = "pull_up"
|
|||
|
HANGING = "hanging"
|
|||
|
PUSH_UP = "push_up"
|
|||
|
RUNAROUND = "runaround"
|
|||
|
RUNNING = "running"
|
|||
|
EXERCISE_TYPE_TABLE = {
|
|||
|
SIT_UP: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|||
|
PULL_UP: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|||
|
HANGING: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|||
|
PUSH_UP: "<EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD>",
|
|||
|
RUNAROUND: "30*2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
|||
|
RUNNING: "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
}
|
|||
|
|
|||
|
PERSON_MES = "person_mes"
|
|||
|
FRAME_GENERATOR = "frame_generator"
|
|||
|
ANCHORS_DATA = "anchors_data"
|
|||
|
MASTER = "master"
|
|||
|
SLAVER = "slaver"
|