LISHUZUOXUN_yangjiang/LSZXPagesManagerLibrary/echarts_overview.py

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