# 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