259 lines
10 KiB
Python
259 lines
10 KiB
Python
# coding: gb2312
|
|
from PyQt5.QtGui import QColor
|
|
from PyQt5.QtWidgets import *
|
|
from PyQt5.QtCore import *
|
|
from LSZXPagesManagerLibrary.echarts_pie_table import EchartsPieTable
|
|
|
|
|
|
class EchartsOverview(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
self.item_widget = self._init_item_widget()
|
|
self.all_object = self._init_all_object()
|
|
self.team_object = self._init_team_object()
|
|
self.class_object = self._init_class_object()
|
|
self.object_title = self._init_object_title()
|
|
self.team_title = self._init_object_title()
|
|
self.class_title = self._init_object_title()
|
|
self.test_object_title = self._init_test_object_title()
|
|
self.test_object_combobox = self._init_test_object_combobox()
|
|
self.team_object_title = self._init_test_object_title()
|
|
self.team_object_combobox = self._init_test_object_combobox()
|
|
self.class_object_title = self._init_test_object_title()
|
|
self.class_object_combobox = self._init_test_object_combobox()
|
|
self.test_batch_title = self._init_test_object_title()
|
|
self.test_batch_combobox = self._init_test_object_combobox()
|
|
self.class_batch_title = self._init_test_object_title()
|
|
self.class_batch_combobox = self._init_test_object_combobox()
|
|
self.test_object_button = self._init_test_object_button()
|
|
self.test_team_button = self._init_test_object_button()
|
|
self.test_class_button = self._init_test_object_button()
|
|
self.object_stacked_widget = self._init_object_stacked_widget()
|
|
self.team_stacked_widget = self._init_object_stacked_widget()
|
|
self.class_stacked_widget = self._init_object_stacked_widget()
|
|
|
|
self.echarts_pie = EchartsPieTable()
|
|
self.echarts_pie_widget = self.echarts_pie.get_layout()
|
|
self.table_list = {
|
|
"categorize": [
|
|
{"keyname": "situp", "name": "ÑöÎÔÆð×ø"},
|
|
{"keyname": "runaround", "name": "30*2ÉßÐÎÅÜ"},
|
|
{"keyname": "pullup", "name": "ÒýÌåÏòÉÏ"},
|
|
{"keyname": "running", "name": "³¤ÅÜ"},
|
|
{"keyname": "pushup", "name": "¸©ÎÔ³Å"},
|
|
{"keyname": "hanging", "name": "Çú±ÛÐü´¹"}
|
|
],
|
|
"data": {
|
|
"pullup": [17.86, 39.29, 16.07, 26.79, 0],
|
|
"runaround": [12.5, 53.57, 23.21, 10.71, 0],
|
|
"running": [16.07, 64.29, 10.71, 8.93, 0],
|
|
"situp": [25, 39.29, 23.21, 12.5, 0]
|
|
},
|
|
}
|
|
self.echarts_pie.set_data(self.table_list)
|
|
self.object_stacked_widget.setLayout(self.echarts_pie_widget)
|
|
|
|
self.object_title.setText("¿¼ºËÏîÄ¿»ã×Ü")
|
|
self.team_title.setText("¼¯Ì忼ºËÏîÄ¿»ã×Ü")
|
|
self.class_title.setText("°à¼¶¿¼ºËÏîÄ¿»ã×Ü")
|
|
self.test_object_title.setText("¿¼ºËÏîÄ¿£º")
|
|
self.team_object_title.setText("¿¼ºËÏîÄ¿£º")
|
|
self.class_object_title.setText("¿¼ºËÏîÄ¿£º")
|
|
self.test_batch_title.setText("¿¼ºËÅú´Î£º")
|
|
self.class_batch_title.setText("¿¼ºËÅú´Î£º")
|
|
|
|
self.test_object_layout = QHBoxLayout()
|
|
self.test_object_layout.setContentsMargins(10, 0, 0, 0)
|
|
self.test_object_layout.addWidget(self.test_object_title, 20)
|
|
self.test_object_layout.addWidget(self.test_object_combobox, 80)
|
|
|
|
self.test_batch_layout = QHBoxLayout()
|
|
self.test_batch_layout.setContentsMargins(20, 0, 0, 0)
|
|
self.test_batch_layout.addWidget(self.test_batch_title, 20)
|
|
self.test_batch_layout.addWidget(self.test_batch_combobox, 80)
|
|
|
|
self.top_object_layout = QHBoxLayout()
|
|
self.top_object_layout.setContentsMargins(0, 10, 0, 0)
|
|
self.top_object_layout.addLayout(self.test_object_layout, 43)
|
|
self.top_object_layout.addLayout(self.test_batch_layout, 43)
|
|
self.top_object_layout.addWidget(self.test_object_button, 14)
|
|
|
|
self.object_title_layout = QHBoxLayout()
|
|
self.object_title_layout.addWidget(self.init_empty_widget(), 35)
|
|
self.object_title_layout.addWidget(self.object_title, 30)
|
|
self.object_title_layout.addWidget(self.init_empty_widget(), 35)
|
|
|
|
self.all_object_layout = QVBoxLayout()
|
|
self.all_object_layout.addLayout(self.object_title_layout, 5)
|
|
self.all_object_layout.addLayout(self.top_object_layout, 20)
|
|
self.all_object_layout.addWidget(self.object_stacked_widget, 75)
|
|
self.all_object.setLayout(self.all_object_layout)
|
|
|
|
self.team_title_layout = QHBoxLayout()
|
|
self.team_title_layout.addWidget(self.init_empty_widget(), 35)
|
|
self.team_title_layout.addWidget(self.team_title, 30)
|
|
self.team_title_layout.addWidget(self.init_empty_widget(), 35)
|
|
|
|
self.team_object_layout = QHBoxLayout()
|
|
self.team_object_layout.setContentsMargins(10, 0, 0, 0)
|
|
self.team_object_layout.addWidget(self.team_object_title, 20)
|
|
self.team_object_layout.addWidget(self.team_object_combobox, 80)
|
|
|
|
self.test_team_layout = QHBoxLayout()
|
|
self.test_team_layout.addWidget(self.init_empty_widget(), 15)
|
|
self.test_team_layout.addLayout(self.team_object_layout, 55)
|
|
self.test_team_layout.addWidget(self.test_team_button, 15)
|
|
self.test_team_layout.addWidget(self.init_empty_widget(), 15)
|
|
|
|
self.team_layout = QVBoxLayout()
|
|
self.team_layout.addLayout(self.team_title_layout, 10)
|
|
self.team_layout.addLayout(self.test_team_layout, 20)
|
|
self.team_layout.addWidget(self.team_stacked_widget, 65)
|
|
self.team_object.setLayout(self.team_layout)
|
|
|
|
self.class_title_layout = QHBoxLayout()
|
|
self.class_title_layout.addWidget(self.init_empty_widget(), 35)
|
|
self.class_title_layout.addWidget(self.class_title, 30)
|
|
self.class_title_layout.addWidget(self.init_empty_widget(), 35)
|
|
|
|
self.top_class_object_layout = QHBoxLayout()
|
|
self.top_class_object_layout.setContentsMargins(10, 0, 0, 0)
|
|
self.top_class_object_layout.addWidget(self.class_object_title, 20)
|
|
self.top_class_object_layout.addWidget(self.class_object_combobox, 80)
|
|
|
|
self.class_batch_layout = QHBoxLayout()
|
|
self.class_batch_layout.setContentsMargins(20, 0, 0, 0)
|
|
self.class_batch_layout.addWidget(self.class_batch_title, 20)
|
|
self.class_batch_layout.addWidget(self.class_batch_combobox, 80)
|
|
|
|
self.class_object_layout = QHBoxLayout()
|
|
self.class_object_layout.setContentsMargins(0, 10, 0, 0)
|
|
self.class_object_layout.addLayout(self.top_class_object_layout, 43)
|
|
self.class_object_layout.addLayout(self.class_batch_layout, 43)
|
|
self.class_object_layout.addWidget(self.test_class_button, 14)
|
|
|
|
self.class_layout = QVBoxLayout()
|
|
self.class_layout.addLayout(self.class_title_layout, 10)
|
|
self.class_layout.addLayout(self.class_object_layout, 20)
|
|
self.class_layout.addWidget(self.class_stacked_widget, 65)
|
|
self.class_object.setLayout(self.class_layout)
|
|
|
|
self.right_layout = QVBoxLayout()
|
|
self.right_layout.addWidget(self.team_object, 50)
|
|
self.right_layout.addWidget(self.class_object, 50)
|
|
|
|
self.main_layout = QHBoxLayout()
|
|
self.main_layout.setContentsMargins(0, 0, 0, 0)
|
|
self.main_layout.addWidget(self.all_object, 50)
|
|
self.main_layout.addLayout(self.right_layout, 50)
|
|
self.item_widget.setLayout(self.main_layout)
|
|
|
|
self.layout = QVBoxLayout()
|
|
self.layout.setContentsMargins(0, 0, 0, 0)
|
|
self.layout.addWidget(self.item_widget)
|
|
self.setLayout(self.layout)
|
|
|
|
# ³õʼ»¯¿Õ°×¿Ø¼þ
|
|
@staticmethod
|
|
def init_empty_widget():
|
|
empty_widget = QWidget()
|
|
empty_widget.setStyleSheet(
|
|
"border: none;"
|
|
)
|
|
return empty_widget
|
|
|
|
@staticmethod
|
|
def _init_item_widget():
|
|
item_widget = QWidget()
|
|
item_widget.setStyleSheet(
|
|
"border: 1px solid #FFFF00;"
|
|
"border: none;"
|
|
)
|
|
return item_widget
|
|
|
|
@staticmethod
|
|
def _init_all_object():
|
|
all_object = QWidget()
|
|
all_object.setStyleSheet(
|
|
"border: 1px solid #8a8a8a;"
|
|
"border-radius: 4px;"
|
|
)
|
|
return all_object
|
|
|
|
@staticmethod
|
|
def _init_team_object():
|
|
team_object = QWidget()
|
|
team_object.setStyleSheet(
|
|
"border: 1px solid #8a8a8a;"
|
|
"border-radius: 4px;"
|
|
)
|
|
return team_object
|
|
|
|
@staticmethod
|
|
def _init_class_object():
|
|
class_object = QWidget()
|
|
class_object.setStyleSheet(
|
|
"border: 1px solid #8a8a8a;"
|
|
"border-radius: 4px;"
|
|
)
|
|
return class_object
|
|
|
|
@staticmethod
|
|
def _init_object_title():
|
|
object_title = QLabel()
|
|
object_title.setAlignment(Qt.AlignCenter)
|
|
object_title.setStyleSheet(
|
|
"color: #222222;"
|
|
"background-color: #f0f0f0;"
|
|
"font: 600 24px \"Microsoft YaHei UI\";"
|
|
"letter-spacing: 4px;"
|
|
"border: none;"
|
|
)
|
|
return object_title
|
|
|
|
@staticmethod
|
|
def _init_test_object_title():
|
|
test_object_title = QLabel()
|
|
test_object_title.setStyleSheet(
|
|
"color: #222222;"
|
|
"font: 20px \"Microsoft YaHei UI\";"
|
|
"border: none;"
|
|
)
|
|
return test_object_title
|
|
|
|
@staticmethod
|
|
def _init_test_object_combobox():
|
|
test_object_combobox = QComboBox()
|
|
test_object_combobox.setStyleSheet(
|
|
"color: #222222;"
|
|
"font: 20px \"Microsoft YaHei UI\";"
|
|
"border: 1px solid #8a8a8a;"
|
|
"border-radius: 4px;"
|
|
"height: 60%;"
|
|
)
|
|
return test_object_combobox
|
|
|
|
@staticmethod
|
|
def _init_test_object_button():
|
|
test_object_button = QPushButton('²é¿´')
|
|
test_object_button.setStyleSheet(
|
|
"color: #ffffff;"
|
|
"font: 600 20px \"Microsoft YaHei UI\";"
|
|
"border-radius: 4px;"
|
|
"background-color: #3266d0;"
|
|
"height: 60%;"
|
|
"margin-left: 20px;"
|
|
"margin-right: 10px;"
|
|
"letter-spacing: 2px;"
|
|
)
|
|
return test_object_button
|
|
|
|
@staticmethod
|
|
def _init_object_stacked_widget():
|
|
object_stacked_widget = QWidget()
|
|
object_stacked_widget.setStyleSheet(
|
|
"border: none;"
|
|
)
|
|
return object_stacked_widget
|