y2 = [3, 4] for i in range(len(x)): upperSeries.append(x[i], y1[i]) lowerSeries.append(x[i], y2[i]) series = QtCharts.QAreaSeries(upperSeries, lowerSeries) pen = QPen(Qt.red) pen.setWidth(3) series.setPen(pen) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1)) gradient.setColorAt(0.0, QColor(255, 255, 255)) gradient.setColorAt(1.0, QColor(0, 255, 0)) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) series.setBrush(gradient) chart = QtCharts.QChart() chart.addSeries(series) chart.setTitle('Simple Area Chart') chart.legend().hide() chart.createDefaultAxes() chart.axes(Qt.Horizontal)[0].setRange(0, 3) chart.axes(Qt.Vertical)[0].setRange(0, 10) chartView = QtCharts.QChartView(chart) chartView.setWindowTitle('Area Chart') chartView.resize(800, 600) chartView.show()
class ColorTransferFunctionIntervalView(QGraphicsRectItem): def __init__(self, viewer: ColorTransferFunctionViewer, begin_point: ColorTransferFunctionPoint, end_point: ColorTransferFunctionPoint, parent: QGraphicsItem = None): super().__init__(parent) self.viewer = viewer self._begin_point = None self._end_point = None self.chart = self.viewer.chart self.brush_gradient = QLinearGradient() self.brush_gradient.setStart(QPointF(0, 0)) self.brush_gradient.setFinalStop(QPointF(1, 0)) self.brush_gradient.setCoordinateMode(QGradient.ObjectMode) self.setPen(QColor('#404040')) self.begin_point = begin_point self.end_point = end_point @property def begin_point(self): return self._begin_point @begin_point.setter def begin_point(self, value): if self._begin_point != value: self._begin_point = value self._begin_point.x_changed.connect(self._on_point_x_changed) self._begin_point.color_array_changed.connect( self._on_begin_point_color_array_changed) self._update_begin_brush() @property def end_point(self): return self._end_point @end_point.setter def end_point(self, value): if self._end_point != value: self._end_point = value self._end_point.x_changed.connect(self._on_point_x_changed) self._end_point.color_array_changed.connect( self._on_end_point_color_array_changed) self._update_end_brush() def _on_point_x_changed(self, x: float): self.update() def _on_begin_point_color_array_changed(self, color_array: np.ndarray): self._update_begin_brush() def _on_end_point_color_array_changed(self, color_array: np.ndarray): self._update_end_brush() def _update_begin_brush(self): self.brush_gradient.setColorAt(0, self.begin_point.color) self.setBrush(self.brush_gradient) def _update_end_brush(self): self.brush_gradient.setColorAt(1, self.end_point.color) self.setBrush(self.brush_gradient) def update(self, rect: QRectF = QRectF()): super().update(rect) top_left_interval_pos = self.chart.mapToPosition( QPointF(self.begin_point.x, 1)) bottom_right_interval_pos = self.chart.mapToPosition( QPointF(self.end_point.x, 0)) self.setRect(QRectF(top_left_interval_pos, bottom_right_interval_pos)) def __lt__(self, other): return self.begin_point.x < other.begin_point.x
def createAreaChart(data): """ axisX = QtCharts.QDateTimeAxis(); # axisX.setTickCount(10); axisX.setFormat("yyyy"); #axisX.setFormat("yyyy/MM/dd hh:mm:ss:zzz"); #axisX.setFormat("hh:mm:ss:zzz"); axisX.setTitleText("Time"); chart.addAxis(axisX, Qt.AlignBottom); axisY = QtCharts.QValueAxis(); # axisY.setLabelFormat("%.2f"); axisY.setTitleText("%"); chart.addAxis(axisY, Qt.AlignLeft); # chart.axes(Qt.Vertical)[0].setRange(0, 100) # chart.axes(Qt.Vertical)[0].setRange(0, 3) """ series0 = QtCharts.QSplineSeries() series0.append(QPointF(1, 5)) series0.append(QPointF(3, 7)) series0.append(QPointF(7, 6)) series0.append(QPointF(9, 7)) series0.append(QPointF(12, 6)) series0.append(QPointF(16, 7)) series0.append(QPointF(18, 5)) series1 = QtCharts.QSplineSeries() series1.append(QPointF(1, 3)) series1.append(QPointF(3, 4)) series1.append(QPointF(7, 3)) series1.append(QPointF(8, 2)) series1.append(QPointF(12, 3)) series1.append(QPointF(16, 4)) series1.append(QPointF(18, 3)) """ # seriesFilter = [0, 3, 4, 6] # seriesFilter = [0] seriesFilter = [0] valuesToDraw = [data[1][i] for i in seriesFilter] namesToDraw = [data[2][i] for i in seriesFilter] i = 0 values = valuesToDraw[i] name = namesToDraw[i] topLineSeries = QtCharts.QLineSeries() n = len(values) print(values) # конвертируем столбец time в float, чтобы можно было использовать его как значения оси x for j in range(n): # print(x) time = data[0][j] topLineSeries.append(float(time.toMSecsSinceEpoch()), values[j]) """ #areaSeries = QtCharts.QAreaSeries(topLineSeries); areaSeries = QtCharts.QAreaSeries(series0, series1) #areaSeries.setName(name); areaSeries.setName("name4535343534") pen = QPen(0x059605) pen.setWidth(3) areaSeries.setPen(pen) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1)) gradient.setColorAt(0.0, 0x3cc63c) gradient.setColorAt(1.0, 0x26f626) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) areaSeries.setBrush(gradient) chart = QtCharts.QChart() chart.addSeries(areaSeries) # chart.legend().hide() chart.setTitle("Area chart (population by continents)") chart.createDefaultAxes() chart.axes(Qt.Horizontal)[0].setRange(0, 20) chart.axes(Qt.Vertical)[0].setRange(0, 10) chartView = QtCharts.QChartView(chart) chartView.setRenderHint(QPainter.Antialiasing) # areaSeries.attachAxis(axisX); # areaSeries.attachAxis(axisY); """ for i in range(len(seriesFilter)): values = valuesToDraw[i] name = namesToDraw[i] series = QtCharts.QSplineSeries() series.setName(name) n = len(values) # print(values) # конвертируем столбец time в float, чтобы можно было использовать его как значения оси x for j in range(n): # print(x) time = data[0][j] series.append(float(time.toMSecsSinceEpoch()), values[j]) chart.addSeries(series) series.attachAxis(axisX); series.attachAxis(axisY); """ return chartView
def setupUi(self, DsManager): if not DsManager.objectName(): DsManager.setObjectName(u"DsManager") DsManager.setWindowModality(Qt.WindowModal) DsManager.resize(1156, 934) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( DsManager.sizePolicy().hasHeightForWidth()) DsManager.setSizePolicy(sizePolicy) DsManager.setMinimumSize(QSize(0, 800)) font = QFont() font.setFamily(u"Arial Narrow") font.setPointSize(11) font.setBold(False) font.setItalic(False) font.setWeight(50) DsManager.setFont(font) icon = QIcon() icon.addFile(u"inc/icon.ico", QSize(), QIcon.Normal, QIcon.Off) DsManager.setWindowIcon(icon) DsManager.setStyleSheet( u"QMainWindow{\n" "background-image:url(:/images/background.jpg);\n" "background-repeat:none;\n" "}\n" "QPushButton {\n" " border: 2px solid rgb(52, 59, 72);\n" " border-radius: 5px; \n" " background-color: rgb(199, 200, 255);\n" " padding: 5px\n" "}\n" "QPushButton:hover {\n" " border: 2px solid rgb(61, 70, 86);\n" "}\n" "QPushButton:pressed { \n" " background-color: rgb(35, 40, 49);\n" " border: 2px solid rgb(43, 50, 61);\n" "}") DsManager.setToolButtonStyle(Qt.ToolButtonIconOnly) DsManager.setAnimated(True) DsManager.setDocumentMode(False) DsManager.setDockNestingEnabled(True) self.actionAbut_DS_Manager = QAction(DsManager) self.actionAbut_DS_Manager.setObjectName(u"actionAbut_DS_Manager") icon1 = QIcon() icon1.addFile(u":/icons/icon.png", QSize(), QIcon.Normal, QIcon.Off) self.actionAbut_DS_Manager.setIcon(icon1) self.actionAbut_DS_Manager.setShortcutContext(Qt.WidgetShortcut) self.actionAbut_DS_Manager.setMenuRole(QAction.TextHeuristicRole) self.actionBackup_Database = QAction(DsManager) self.actionBackup_Database.setObjectName(u"actionBackup_Database") font1 = QFont() font1.setFamily(u"Microsoft YaHei UI") font1.setPointSize(8) self.actionBackup_Database.setFont(font1) self.actionRestore_Database = QAction(DsManager) self.actionRestore_Database.setObjectName(u"actionRestore_Database") self.centralwidget = QWidget(DsManager) self.centralwidget.setObjectName(u"centralwidget") sizePolicy.setHeightForWidth( self.centralwidget.sizePolicy().hasHeightForWidth()) self.centralwidget.setSizePolicy(sizePolicy) self.verticalLayout_2 = QVBoxLayout(self.centralwidget) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalSpacer_3 = QSpacerItem(250, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer_3) self.label = QLabel(self.centralwidget) self.label.setObjectName(u"label") sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth( self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy1) self.label.setMaximumSize(QSize(164, 164)) self.label.setStyleSheet(u"") self.label.setTextFormat(Qt.PlainText) self.label.setPixmap(QPixmap(u":/icons/home_logo.png")) self.label.setScaledContents(True) self.label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) self.horizontalLayout.addWidget(self.label) self.horizontalSpacer = QSpacerItem(150, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer) self.label_11 = QLabel(self.centralwidget) self.label_11.setObjectName(u"label_11") sizePolicy2 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth( self.label_11.sizePolicy().hasHeightForWidth()) self.label_11.setSizePolicy(sizePolicy2) font2 = QFont() font2.setFamily(u"Tahoma") font2.setPointSize(14) font2.setBold(True) font2.setItalic(False) font2.setWeight(75) font2.setStyleStrategy(QFont.PreferAntialias) self.label_11.setFont(font2) self.label_11.setLayoutDirection(Qt.RightToLeft) self.label_11.setStyleSheet(u"color: white;\n" "padding:10px;\n" "text-align:left;") self.label_11.setAlignment(Qt.AlignHCenter | Qt.AlignTop) self.label_11.setWordWrap(False) self.label_11.setMargin(10) self.label_11.setOpenExternalLinks(False) self.horizontalLayout.addWidget(self.label_11) self.horizontalSpacer_2 = QSpacerItem(250, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer_2) self.verticalLayout_2.addLayout(self.horizontalLayout) self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName(u"verticalLayout") self.verticalLayout.setContentsMargins(60, 10, 30, 25) self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setObjectName(u"tabWidget") self.tabWidget.setEnabled(True) sizePolicy.setHeightForWidth( self.tabWidget.sizePolicy().hasHeightForWidth()) self.tabWidget.setSizePolicy(sizePolicy) self.tabWidget.setMaximumSize(QSize(1500, 16777215)) font3 = QFont() font3.setFamily(u"Microsoft YaHei UI") font3.setPointSize(9) font3.setBold(True) font3.setItalic(False) font3.setWeight(75) self.tabWidget.setFont(font3) self.tabWidget.setAcceptDrops(False) self.tabWidget.setToolTipDuration(-1) # if QT_CONFIG(accessibility) self.tabWidget.setAccessibleDescription(u"") # endif // QT_CONFIG(accessibility) self.tabWidget.setLayoutDirection(Qt.LeftToRight) self.tabWidget.setAutoFillBackground(False) self.tabWidget.setStyleSheet( u"QWidget{\n" " background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(173, 224, 209, 207), stop:0.965174 rgba(165, 218, 214, 170));\n" " border:0px;\n" " height:30%;\n" "}\n" "\n" "QTabWidget::pane {\n" " border: 0;\n" " background-color:rgb(220, 255, 247);\n" " border-radius: 10px;\n" "}\n" "\n" "QCalendarWidget QToolButton{\n" " color: black;\n" " background-color:rgb(156, 255, 231);\n" "}\n" "\n" " \n" "\n" "QCalendarWidget QAbstractItemView:enabled \n" " {\n" " \n" " color: black; \n" " background-color: rgb(198, 255, 232); \n" " selection-background-color: rgb(64, 64, 64); \n" " selection-color: rgb(0, 255, 0); \n" " }\n" "\n" "QTabBar::tab {\n" " width: 200;\n" " background: gray;\n" " color: white;\n" " padding: 10px; \n" " border-radius: 40px;\n" "}\n" "\n" "QTabBar::tab:selected {\n" " background: qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(173, 224, 209, 207), stop:0.965174 rgba(165, 218," " 214, 170));\n" " color: rgb(9, 0, 79);\n" " padding: 10px; \n" " border-radius: 40px;\n" "}") self.tabWidget.setTabPosition(QTabWidget.North) self.tabWidget.setTabShape(QTabWidget.Rounded) self.tabWidget.setIconSize(QSize(0, 0)) self.tabWidget.setElideMode(Qt.ElideNone) self.tabWidget.setDocumentMode(False) self.tabWidget.setTabsClosable(False) self.tabWidget.setMovable(True) self.tabWidget.setTabBarAutoHide(False) self.data_entry_tab = QWidget() self.data_entry_tab.setObjectName(u"data_entry_tab") font4 = QFont() font4.setBold(False) font4.setWeight(50) self.data_entry_tab.setFont(font4) self.gridLayout = QGridLayout(self.data_entry_tab) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setSizeConstraint(QLayout.SetDefaultConstraint) self.gridLayout.setHorizontalSpacing(10) self.gridLayout.setVerticalSpacing(30) self.gridLayout.setContentsMargins(80, 40, 20, 10) self.label_13 = QLabel(self.data_entry_tab) self.label_13.setObjectName(u"label_13") sizePolicy2.setHeightForWidth( self.label_13.sizePolicy().hasHeightForWidth()) self.label_13.setSizePolicy(sizePolicy2) font5 = QFont() font5.setFamily(u"Microsoft YaHei UI") font5.setPointSize(11) font5.setBold(False) font5.setWeight(50) font5.setStyleStrategy(QFont.PreferAntialias) self.label_13.setFont(font5) self.gridLayout.addWidget(self.label_13, 8, 1, 1, 1) self.label_10 = QLabel(self.data_entry_tab) self.label_10.setObjectName(u"label_10") sizePolicy2.setHeightForWidth( self.label_10.sizePolicy().hasHeightForWidth()) self.label_10.setSizePolicy(sizePolicy2) font6 = QFont() font6.setFamily(u"Microsoft YaHei UI") font6.setPointSize(11) font6.setBold(False) font6.setItalic(False) font6.setWeight(50) font6.setStrikeOut(False) font6.setStyleStrategy(QFont.PreferAntialias) self.label_10.setFont(font6) self.label_10.setStyleSheet(u"") self.gridLayout.addWidget(self.label_10, 5, 1, 1, 1) self.clear_entry_button = QPushButton(self.data_entry_tab) self.clear_entry_button.setObjectName(u"clear_entry_button") sizePolicy3 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) sizePolicy3.setHorizontalStretch(0) sizePolicy3.setVerticalStretch(0) sizePolicy3.setHeightForWidth( self.clear_entry_button.sizePolicy().hasHeightForWidth()) self.clear_entry_button.setSizePolicy(sizePolicy3) font7 = QFont() font7.setFamily(u"Microsoft YaHei UI") font7.setPointSize(11) font7.setBold(True) font7.setItalic(False) font7.setWeight(75) font7.setKerning(True) self.clear_entry_button.setFont(font7) self.clear_entry_button.setStyleSheet( u"QPushButton{\n" "background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0547264 rgba(10, 103, 95, 209), stop:1 rgba(13, 136, 125, 209));\n" "width:110%;\n" "height:40%;\n" "color:white;\n" "border-radius:8px;\n" "}\n" "\n" "\n" " QPushButton:hover:!pressed\n" "{\n" " border: 2px solid rgb(41, 135, 140);\n" "background-color:rgb(199, 248, 255);\n" "color:black;\n" "\n" "}") self.clear_entry_button.setIconSize(QSize(40, 40)) self.gridLayout.addWidget(self.clear_entry_button, 12, 2, 1, 1) self.enter_data_button = QPushButton(self.data_entry_tab) self.enter_data_button.setObjectName(u"enter_data_button") sizePolicy3.setHeightForWidth( self.enter_data_button.sizePolicy().hasHeightForWidth()) self.enter_data_button.setSizePolicy(sizePolicy3) font8 = QFont() font8.setFamily(u"Microsoft YaHei UI") font8.setPointSize(11) font8.setBold(True) font8.setItalic(False) font8.setWeight(75) self.enter_data_button.setFont(font8) self.enter_data_button.setStyleSheet( u"QPushButton{\n" "background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0547264 rgba(10, 103, 95, 209), stop:1 rgba(13, 136, 125, 209));\n" "width:110%;\n" "height:40%;\n" "color:white;\n" "border-radius:8px;\n" "}\n" "\n" "\n" " QPushButton:hover:!pressed\n" "{\n" " border: 2px solid rgb(41, 135, 140);\n" "background-color:rgb(199, 248, 255);\n" "color:black;\n" "\n" "}") self.gridLayout.addWidget(self.enter_data_button, 12, 4, 1, 1) self.label_3 = QLabel(self.data_entry_tab) self.label_3.setObjectName(u"label_3") sizePolicy4 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) sizePolicy4.setHorizontalStretch(0) sizePolicy4.setVerticalStretch(0) sizePolicy4.setHeightForWidth( self.label_3.sizePolicy().hasHeightForWidth()) self.label_3.setSizePolicy(sizePolicy4) self.label_3.setFont(font6) self.gridLayout.addWidget(self.label_3, 2, 1, 1, 1) self.more_trans_detail = QLineEdit(self.data_entry_tab) self.more_trans_detail.setObjectName(u"more_trans_detail") sizePolicy5 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy5.setHorizontalStretch(0) sizePolicy5.setVerticalStretch(0) sizePolicy5.setHeightForWidth( self.more_trans_detail.sizePolicy().hasHeightForWidth()) self.more_trans_detail.setSizePolicy(sizePolicy5) self.more_trans_detail.setMaximumSize(QSize(300, 16777215)) font9 = QFont() font9.setFamily(u"Microsoft YaHei UI") font9.setPointSize(11) font9.setBold(False) font9.setItalic(False) font9.setWeight(50) self.more_trans_detail.setFont(font9) self.more_trans_detail.setStyleSheet( u"QLineEdit {\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding-left: 10px;\n" "}\n" "QLineEdit:hover {\n" " border: 2px solid rgb(64, 71, 88);\n" "}\n" "QLineEdit:focus {\n" " border: 2px solid rgb(91, 101, 124);\n" "}") self.more_trans_detail.setCursorMoveStyle(Qt.VisualMoveStyle) self.more_trans_detail.setClearButtonEnabled(True) self.gridLayout.addWidget(self.more_trans_detail, 3, 7, 1, 1) self.method_of_trans = QComboBox(self.data_entry_tab) self.method_of_trans.setObjectName(u"method_of_trans") sizePolicy6 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy6.setHorizontalStretch(0) sizePolicy6.setVerticalStretch(0) sizePolicy6.setHeightForWidth( self.method_of_trans.sizePolicy().hasHeightForWidth()) self.method_of_trans.setSizePolicy(sizePolicy6) self.method_of_trans.setMaximumSize(QSize(300, 16777215)) palette = QPalette() gradient = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient.setSpread(QGradient.PadSpread) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) gradient.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush = QBrush(gradient) palette.setBrush(QPalette.Active, QPalette.Button, brush) gradient1 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient1.setSpread(QGradient.PadSpread) gradient1.setCoordinateMode(QGradient.ObjectBoundingMode) gradient1.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient1.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient1.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush1 = QBrush(gradient1) palette.setBrush(QPalette.Active, QPalette.Base, brush1) gradient2 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient2.setSpread(QGradient.PadSpread) gradient2.setCoordinateMode(QGradient.ObjectBoundingMode) gradient2.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient2.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient2.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush2 = QBrush(gradient2) palette.setBrush(QPalette.Active, QPalette.Window, brush2) gradient3 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient3.setSpread(QGradient.PadSpread) gradient3.setCoordinateMode(QGradient.ObjectBoundingMode) gradient3.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient3.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient3.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush3 = QBrush(gradient3) palette.setBrush(QPalette.Inactive, QPalette.Button, brush3) gradient4 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient4.setSpread(QGradient.PadSpread) gradient4.setCoordinateMode(QGradient.ObjectBoundingMode) gradient4.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient4.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient4.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush4 = QBrush(gradient4) palette.setBrush(QPalette.Inactive, QPalette.Base, brush4) gradient5 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient5.setSpread(QGradient.PadSpread) gradient5.setCoordinateMode(QGradient.ObjectBoundingMode) gradient5.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient5.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient5.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush5 = QBrush(gradient5) palette.setBrush(QPalette.Inactive, QPalette.Window, brush5) gradient6 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient6.setSpread(QGradient.PadSpread) gradient6.setCoordinateMode(QGradient.ObjectBoundingMode) gradient6.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient6.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient6.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush6 = QBrush(gradient6) palette.setBrush(QPalette.Disabled, QPalette.Button, brush6) gradient7 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient7.setSpread(QGradient.PadSpread) gradient7.setCoordinateMode(QGradient.ObjectBoundingMode) gradient7.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient7.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient7.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush7 = QBrush(gradient7) palette.setBrush(QPalette.Disabled, QPalette.Base, brush7) gradient8 = QLinearGradient(0.532552, 0, 0.522, 0.926136) gradient8.setSpread(QGradient.PadSpread) gradient8.setCoordinateMode(QGradient.ObjectBoundingMode) gradient8.setColorAt(0.0199005, QColor(50, 186, 144, 52)) gradient8.setColorAt(0.482587, QColor(65, 156, 128, 54)) gradient8.setColorAt(0.975124, QColor(75, 164, 181, 80)) brush8 = QBrush(gradient8) palette.setBrush(QPalette.Disabled, QPalette.Window, brush8) self.method_of_trans.setPalette(palette) font10 = QFont() font10.setFamily(u"Microsoft YaHei UI") font10.setPointSize(12) font10.setBold(False) font10.setItalic(False) font10.setWeight(50) self.method_of_trans.setFont(font10) self.method_of_trans.setStyleSheet( u"QComboBox{\n" " background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(50, 186, 144, 52), stop:0.482587 rgba(65, 156, 128, 54), stop:0.975124 rgba(75, 164, 181, 80));\n" "}\n" "QComboBox:hover{\n" " border: 2px solid rgb(64, 71, 88);\n" " \n" "}\n" "QComboBox QAbstractItemView {\n" " padding: 10px;\n" "\n" " background-color:rgb(170, 255, 230)\n" " \n" " \n" "}\n" "\n" "QComboBox QAbstractItemView{border-radius: 5px;\n" " border: 2px ;\n" " padding: 5px;\n" " padding-left: 10px;\n" " }") self.gridLayout.addWidget(self.method_of_trans, 2, 7, 1, 1) self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.cash_radio = QRadioButton(self.data_entry_tab) self.cash_radio.setObjectName(u"cash_radio") sizePolicy7 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy7.setHorizontalStretch(0) sizePolicy7.setVerticalStretch(0) sizePolicy7.setHeightForWidth( self.cash_radio.sizePolicy().hasHeightForWidth()) self.cash_radio.setSizePolicy(sizePolicy7) self.cash_radio.setMinimumSize(QSize(80, 0)) self.cash_radio.setFont(font9) self.horizontalLayout_2.addWidget(self.cash_radio) self.main_radio = QRadioButton(self.data_entry_tab) self.main_radio.setObjectName(u"main_radio") self.main_radio.setMinimumSize(QSize(150, 0)) self.main_radio.setFont(font9) self.horizontalLayout_2.addWidget(self.main_radio) self.building_radio = QRadioButton(self.data_entry_tab) self.building_radio.setObjectName(u"building_radio") self.building_radio.setMinimumSize(QSize(175, 0)) font11 = QFont() font11.setFamily(u"Microsoft YaHei UI") font11.setPointSize(11) self.building_radio.setFont(font11) self.horizontalLayout_2.addWidget(self.building_radio) self.gridLayout.addLayout(self.horizontalLayout_2, 5, 7, 1, 1) self.label_9 = QLabel(self.data_entry_tab) self.label_9.setObjectName(u"label_9") sizePolicy2.setHeightForWidth( self.label_9.sizePolicy().hasHeightForWidth()) self.label_9.setSizePolicy(sizePolicy2) self.label_9.setFont(font6) self.gridLayout.addWidget(self.label_9, 3, 1, 1, 4) self.label_4 = QLabel(self.data_entry_tab) self.label_4.setObjectName(u"label_4") sizePolicy2.setHeightForWidth( self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy2) self.label_4.setFont(font6) self.label_4.setStyleSheet(u"") self.gridLayout.addWidget(self.label_4, 4, 1, 1, 1) self.label_5 = QLabel(self.data_entry_tab) self.label_5.setObjectName(u"label_5") sizePolicy4.setHeightForWidth( self.label_5.sizePolicy().hasHeightForWidth()) self.label_5.setSizePolicy(sizePolicy4) self.label_5.setFont(font6) self.gridLayout.addWidget(self.label_5, 7, 1, 1, 1) self.horizontalSpacer_9 = QSpacerItem(100, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.horizontalSpacer_9, 12, 3, 1, 1) self.horizontalSpacer_8 = QSpacerItem(100, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.horizontalSpacer_8, 12, 7, 1, 1) self.horizontalLayout_4 = QHBoxLayout() self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") self.reversed_entry_increase = QCheckBox(self.data_entry_tab) self.reversed_entry_increase.setObjectName(u"reversed_entry_increase") self.reversed_entry_increase.setFont(font11) self.horizontalLayout_4.addWidget(self.reversed_entry_increase) self.reversed_entry_decrease = QCheckBox(self.data_entry_tab) self.reversed_entry_decrease.setObjectName(u"reversed_entry_decrease") self.reversed_entry_decrease.setFont(font11) self.horizontalLayout_4.addWidget(self.reversed_entry_decrease) self.gridLayout.addLayout(self.horizontalLayout_4, 8, 7, 1, 1) self.date_of_entry = QDateEdit(self.data_entry_tab) self.date_of_entry.setObjectName(u"date_of_entry") sizePolicy6.setHeightForWidth( self.date_of_entry.sizePolicy().hasHeightForWidth()) self.date_of_entry.setSizePolicy(sizePolicy6) self.date_of_entry.setMaximumSize(QSize(150, 16777215)) self.date_of_entry.setFont(font9) self.date_of_entry.setStyleSheet( u"QDateEdit{\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding: 5px;\n" " padding-left: 10px;\n" "\n" " background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(50, 186, 144, 52), stop:0.482587 rgba(65, 156, 128, 54), stop:0.975124 rgba(75, 164, 181, 80));\n" " \n" " \n" "}\n" "QDateEdit:hover{\n" " border: 2px solid rgb(64, 71, 88);\n" " \n" " \n" " \n" " \n" "}\n" "\n" "QCalendarWidget QToolButton{\n" "\n" " color: black;\n" " background-color:rgb(156, 255, 231);}\n" "\n" " \n" "\n" "QCalendarWidget QAbstractItemView:enabled \n" " {\n" " \n" " color: black; \n" " background-color: rgb(198, 255, 232); \n" " selection-background-color: rgb(64, 64, 64); \n" " selection-color: rgb(0, 255, 0); \n" " }") self.date_of_entry.setMinimumDateTime( QDateTime(QDate(1767, 9, 14), QTime(0, 0, 0))) self.date_of_entry.setCalendarPopup(True) self.gridLayout.addWidget(self.date_of_entry, 4, 7, 1, 1) self.money = QLineEdit(self.data_entry_tab) self.money.setObjectName(u"money") sizePolicy6.setHeightForWidth( self.money.sizePolicy().hasHeightForWidth()) self.money.setSizePolicy(sizePolicy6) self.money.setMaximumSize(QSize(200, 16777215)) self.money.setFont(font9) self.money.setStyleSheet(u"QLineEdit {\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding-left: 10px;\n" "}\n" "QLineEdit:hover {\n" " border: 2px solid rgb(64, 71, 88);\n" "}\n" "QLineEdit:focus {\n" " border: 2px solid rgb(91, 101, 124);\n" "}") self.money.setInputMethodHints(Qt.ImhDigitsOnly) self.money.setText(u"") self.money.setFrame(True) self.money.setClearButtonEnabled(True) self.gridLayout.addWidget(self.money, 7, 7, 1, 1) self.label_2 = QLabel(self.data_entry_tab) self.label_2.setObjectName(u"label_2") sizePolicy2.setHeightForWidth( self.label_2.sizePolicy().hasHeightForWidth()) self.label_2.setSizePolicy(sizePolicy2) self.label_2.setFont(font6) self.gridLayout.addWidget(self.label_2, 1, 1, 1, 1) self.trans_type = QComboBox(self.data_entry_tab) self.trans_type.addItem(u"Income") self.trans_type.addItem("") self.trans_type.addItem("") self.trans_type.addItem("") self.trans_type.setObjectName(u"trans_type") sizePolicy6.setHeightForWidth( self.trans_type.sizePolicy().hasHeightForWidth()) self.trans_type.setSizePolicy(sizePolicy6) self.trans_type.setMaximumSize(QSize(300, 16777215)) self.trans_type.setFont(font9) self.trans_type.setStyleSheet( u"QComboBox{\n" " background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(50, 186, 144, 52), stop:0.482587 rgba(65, 156, 128, 54), stop:0.975124 rgba(75, 164, 181, 80));\n" " \n" " \n" " \n" "\n" " \n" "\n" " \n" "}\n" "QComboBox:hover{\n" " border: 2px solid rgb(64, 71, 88);\n" " \n" " \n" "}\n" "QComboBox QAbstractItemView {\n" " padding: 10px;\n" "\n" " background-color:rgb(170, 255, 230)\n" " \n" " \n" "}\n" "\n" "QComboBox QAbstractItemView{border-radius: 5px;\n" " border: 2px ;\n" " padding: 5px;\n" " padding-left: 10px;\n" " }") self.trans_type.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.trans_type.setFrame(True) self.gridLayout.addWidget(self.trans_type, 1, 7, 1, 1) self.cheque_label = QLabel(self.data_entry_tab) self.cheque_label.setObjectName(u"cheque_label") self.cheque_label.setFont(font11) self.gridLayout.addWidget(self.cheque_label, 6, 1, 1, 1) self.cheque_number = QLineEdit(self.data_entry_tab) self.cheque_number.setObjectName(u"cheque_number") sizePolicy6.setHeightForWidth( self.cheque_number.sizePolicy().hasHeightForWidth()) self.cheque_number.setSizePolicy(sizePolicy6) self.cheque_number.setMaximumSize(QSize(200, 16777215)) self.cheque_number.setFont(font11) self.cheque_number.setStyleSheet( u"QLineEdit {\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding-left: 10px;\n" "}\n" "QLineEdit:hover {\n" " border: 2px solid rgb(64, 71, 88);\n" "}\n" "QLineEdit:focus {\n" " border: 2px solid rgb(91, 101, 124);\n" "}") self.gridLayout.addWidget(self.cheque_number, 6, 7, 1, 1) self.tabWidget.addTab(self.data_entry_tab, "") self.report_gen_tab = QWidget() self.report_gen_tab.setObjectName(u"report_gen_tab") self.gridLayout_2 = QGridLayout(self.report_gen_tab) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout_2.setHorizontalSpacing(10) self.gridLayout_2.setVerticalSpacing(20) self.gridLayout_2.setContentsMargins(80, 20, 20, 10) self.label_6 = QLabel(self.report_gen_tab) self.label_6.setObjectName(u"label_6") sizePolicy2.setHeightForWidth( self.label_6.sizePolicy().hasHeightForWidth()) self.label_6.setSizePolicy(sizePolicy2) self.label_6.setFont(font9) self.gridLayout_2.addWidget(self.label_6, 3, 0, 1, 1) self.report_date_from = QDateEdit(self.report_gen_tab) self.report_date_from.setObjectName(u"report_date_from") sizePolicy3.setHeightForWidth( self.report_date_from.sizePolicy().hasHeightForWidth()) self.report_date_from.setSizePolicy(sizePolicy3) font12 = QFont() font12.setFamily(u"Microsoft YaHei UI") font12.setPointSize(11) font12.setBold(False) font12.setItalic(False) font12.setUnderline(False) font12.setWeight(50) self.report_date_from.setFont(font12) self.report_date_from.setStyleSheet( u"QDateEdit{\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding: 5px;\n" " padding-left: 10px;\n" "\n" " background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(50, 186, 144, 52), stop:0.482587 rgba(65, 156, 128, 54), stop:0.975124 rgba(75, 164, 181, 80));\n" " \n" " \n" "}\n" "QDateEdit:hover{\n" " border: 2px solid rgb(64, 71, 88);\n" " \n" " \n" " \n" " \n" "}\n" "\n" "QCalendarWidget QToolButton{\n" "\n" " color: black;\n" " background-color:rgb(156, 255, 231);}\n" "\n" " \n" "\n" "QCalendarWidget QAbstractItemView:enabled \n" " {\n" " \n" " color: black; \n" " background-color: rgb(198, 255, 232); \n" " selection-background-color: rgb(64, 64, 64); \n" " selection-color: rgb(0, 255, 0); \n" " }") self.report_date_from.setDateTime( QDateTime(QDate(2020, 1, 1), QTime(0, 0, 0))) self.report_date_from.setMinimumDateTime( QDateTime(QDate(2010, 9, 14), QTime(0, 0, 0))) self.report_date_from.setMaximumDate(QDate(9999, 11, 30)) self.report_date_from.setCalendarPopup(True) self.report_date_from.setDate(QDate(2020, 1, 1)) self.gridLayout_2.addWidget(self.report_date_from, 3, 4, 1, 1) self.label_7 = QLabel(self.report_gen_tab) self.label_7.setObjectName(u"label_7") sizePolicy2.setHeightForWidth( self.label_7.sizePolicy().hasHeightForWidth()) self.label_7.setSizePolicy(sizePolicy2) self.label_7.setFont(font9) self.gridLayout_2.addWidget(self.label_7, 4, 0, 1, 1) self.report_date_to = QDateEdit(self.report_gen_tab) self.report_date_to.setObjectName(u"report_date_to") sizePolicy3.setHeightForWidth( self.report_date_to.sizePolicy().hasHeightForWidth()) self.report_date_to.setSizePolicy(sizePolicy3) self.report_date_to.setFont(font12) self.report_date_to.setStyleSheet( u"QDateEdit{\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding: 5px;\n" " padding-left: 10px;\n" "\n" " background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0199005 rgba(50, 186, 144, 52), stop:0.482587 rgba(65, 156, 128, 54), stop:0.975124 rgba(75, 164, 181, 80));\n" " \n" " \n" "}\n" "QDateEdit:hover{\n" " border: 2px solid rgb(64, 71, 88);\n" " \n" " \n" " \n" " \n" "}\n" "\n" "QCalendarWidget QToolButton{\n" "\n" " color: black;\n" " background-color:rgb(156, 255, 231);}\n" "\n" " \n" "\n" "QCalendarWidget QAbstractItemView:enabled \n" " {\n" " \n" " color: black; \n" " background-color: rgb(198, 255, 232); \n" " selection-background-color: rgb(64, 64, 64); \n" " selection-color: rgb(0, 255, 0); \n" " }") self.report_date_to.setWrapping(False) self.report_date_to.setReadOnly(False) self.report_date_to.setProperty("showGroupSeparator", False) self.report_date_to.setDateTime( QDateTime(QDate(2020, 1, 1), QTime(0, 0, 0))) self.report_date_to.setMinimumDateTime( QDateTime(QDate(2010, 9, 14), QTime(0, 0, 0))) self.report_date_to.setCurrentSection(QDateTimeEdit.DaySection) self.report_date_to.setCalendarPopup(True) self.report_date_to.setTimeSpec(Qt.TimeZone) self.gridLayout_2.addWidget(self.report_date_to, 4, 4, 1, 1) self.label_12 = QLabel(self.report_gen_tab) self.label_12.setObjectName(u"label_12") sizePolicy2.setHeightForWidth( self.label_12.sizePolicy().hasHeightForWidth()) self.label_12.setSizePolicy(sizePolicy2) font13 = QFont() font13.setFamily(u"Microsoft YaHei UI") font13.setPointSize(11) font13.setBold(False) font13.setWeight(50) self.label_12.setFont(font13) self.gridLayout_2.addWidget(self.label_12, 6, 0, 1, 1) self.comboBox = QComboBox(self.report_gen_tab) self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.setObjectName(u"comboBox") sizePolicy3.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy3) self.comboBox.setMinimumSize(QSize(70, 0)) self.comboBox.setFont(font13) self.comboBox.setStyleSheet(u"QComboBox{\n" " border-radius: 5px;\n" " border: 2px solid rgb(27, 29, 35);\n" " padding: 5px;\n" " padding-left: 10px;\n" "}\n" "QComboBox:hover{\n" " border: 2px solid rgb(64, 71, 88);\n" "}\n" "QComboBox QAbstractItemView {\n" " padding: 10px;\n" "}") self.gridLayout_2.addWidget(self.comboBox, 6, 4, 1, 1) self.preview_report_button = QPushButton(self.report_gen_tab) self.preview_report_button.setObjectName(u"preview_report_button") sizePolicy3.setHeightForWidth( self.preview_report_button.sizePolicy().hasHeightForWidth()) self.preview_report_button.setSizePolicy(sizePolicy3) self.preview_report_button.setMinimumSize(QSize(157, 0)) self.preview_report_button.setFont(font8) self.preview_report_button.setStyleSheet( u"QPushButton{\n" "background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0547264 rgba(10, 103, 95, 209), stop:1 rgba(13, 136, 125, 209));\n" "width:130%;\n" "height:40%;\n" "color:white;\n" "border-radius:8px;\n" "}\n" "\n" "QPushButton:hover:!pressed\n" "{\n" " border: 2px solid rgb(41, 135, 140);\n" "background-color:rgb(199, 248, 255);\n" "color:black;\n" "}") self.gridLayout_2.addWidget(self.preview_report_button, 7, 2, 1, 1) self.export_pdf_button = QPushButton(self.report_gen_tab) self.export_pdf_button.setObjectName(u"export_pdf_button") sizePolicy3.setHeightForWidth( self.export_pdf_button.sizePolicy().hasHeightForWidth()) self.export_pdf_button.setSizePolicy(sizePolicy3) self.export_pdf_button.setMinimumSize(QSize(208, 0)) self.export_pdf_button.setFont(font8) self.export_pdf_button.setLayoutDirection(Qt.LeftToRight) self.export_pdf_button.setStyleSheet( u"QPushButton{\n" "background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0547264 rgba(10, 103, 95, 209), stop:1 rgba(13, 136, 125, 209));\n" "width:170%;\n" "height:40%;\n" "color:white;\n" "border-radius:8px;\n" "}\n" "\n" "QPushButton:hover:!pressed\n" "{\n" " border: 2px solid rgb(41, 135, 140);\n" "background-color:rgb(199, 248, 255);\n" "color:black;\n" "}") self.export_pdf_button.setFlat(False) self.gridLayout_2.addWidget(self.export_pdf_button, 7, 3, 1, 1) self.label_8 = QLabel(self.report_gen_tab) self.label_8.setObjectName(u"label_8") sizePolicy7.setHeightForWidth( self.label_8.sizePolicy().hasHeightForWidth()) self.label_8.setSizePolicy(sizePolicy7) font14 = QFont() font14.setFamily(u"Microsoft YaHei UI") font14.setPointSize(15) font14.setBold(False) font14.setItalic(False) font14.setWeight(50) self.label_8.setFont(font14) self.label_8.setStyleSheet(u"background-color:rgba(0,0,0,0%);\n" "color:rgb(35, 93, 74)") self.label_8.setAlignment(Qt.AlignCenter) self.label_8.setMargin(10) self.gridLayout_2.addWidget(self.label_8, 0, 1, 1, 3) self.print_report_button = QPushButton(self.report_gen_tab) self.print_report_button.setObjectName(u"print_report_button") sizePolicy3.setHeightForWidth( self.print_report_button.sizePolicy().hasHeightForWidth()) self.print_report_button.setSizePolicy(sizePolicy3) self.print_report_button.setMinimumSize(QSize(140, 0)) self.print_report_button.setFont(font8) self.print_report_button.setStyleSheet( u"QPushButton{\n" "background-color:qlineargradient(spread:pad, x1:0.532552, y1:0, x2:0.522, y2:0.926136, stop:0.0547264 rgba(10, 103, 95, 209), stop:1 rgba(13, 136, 125, 209));\n" "width:100%;\n" "height:40%;\n" "color:white;\n" "border-radius:8px;\n" "}\n" "\n" "QPushButton:hover:!pressed\n" "{\n" " border: 2px solid rgb(41, 135, 140);\n" "background-color:rgb(199, 248, 255);\n" "color:black;\n" "}") self.gridLayout_2.addWidget(self.print_report_button, 7, 1, 1, 1) self.tabWidget.addTab(self.report_gen_tab, "") self.verticalLayout.addWidget(self.tabWidget) self.verticalLayout_2.addLayout(self.verticalLayout) DsManager.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(DsManager) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 1156, 24)) font15 = QFont() font15.setFamily(u"Candara") font15.setBold(True) font15.setWeight(75) self.menubar.setFont(font15) self.menubar.setStyleSheet(u"QMenuBar{\n" "background-color:rgb(122, 224, 210);\n" "}\n" "\n" "QMenu:!pressed\n" "{\n" " selection-color: rgb(85, 0, 127);\n" " background-color:rgb(139, 234, 255);\n" "}") self.menuAbout = QMenu(self.menubar) self.menuAbout.setObjectName(u"menuAbout") self.menuFile = QMenu(self.menubar) self.menuFile.setObjectName(u"menuFile") DsManager.setMenuBar(self.menubar) self.statusbar = QStatusBar(DsManager) self.statusbar.setObjectName(u"statusbar") DsManager.setStatusBar(self.statusbar) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuAbout.menuAction()) self.menuAbout.addAction(self.actionAbut_DS_Manager) self.menuFile.addAction(self.actionBackup_Database) self.menuFile.addAction(self.actionRestore_Database) self.retranslateUi(DsManager) self.tabWidget.setCurrentIndex(0) QMetaObject.connectSlotsByName(DsManager)
def __init__(self, parent, capacity, color, gradient_start=None, gradient_end=None, speeds=(), is_upload=False, dp=1, max_speed=0): self._parent = parent self._capacity = capacity self._color = color self._gradient_start = gradient_start if gradient_start \ else self._color self._gradient_end = gradient_end if gradient_end \ else self._color.lighter() self._last_max_speed = max_speed self._chart = QtCharts.QChart() self._line_series = QtCharts.QLineSeries() self._lower_series = QtCharts.QLineSeries() if len(speeds) > self._capacity: speeds = speeds[len(speeds) - self._capacity:] for i, speed in enumerate(speeds): self._line_series.append(i, speed) self._lower_series.append(i, 0) self._last_index = len(speeds) self._series = QtCharts.QAreaSeries(self._line_series, self._lower_series) pen = QPen(self._color) pen.setWidth(1) self._series.setPen(pen) self._series.lowerSeries().setColor(self._gradient_end) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1)) gradient.setColorAt(0.0, self._gradient_start) gradient.setColorAt(1.0, self._gradient_end) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) self._series.setBrush(gradient) self._chart.addSeries(self._series) self._chart.layout().setContentsMargins(0, 0, 0, 0) # make chart look bigger margins = [-35, -25, -35, -37] self._chart.setContentsMargins(*margins) self._chart.setBackgroundRoundness(0) grid_pen = QPen(QColor("#EFEFF4")) grid_pen.setWidth(1) self._chart.createDefaultAxes() self._chart.axisX().setLabelsVisible(False) # self._chart.axisY().setLabelsVisible(False) self._chart.axisX().setTitleVisible(False) # self._chart.axisY().setTitleVisible(False) self._chart.axisX().setGridLineVisible(True) self._chart.axisX().setGridLinePen(grid_pen) # self._chart.axisY().setGridLineVisible(False) # self._chart.axisY().setGridLinePen(grid_pen) self._chart.axisX().setLineVisible(False) self._chart.axisY().setLineVisible(False) self._chart.axisX().setRange(self._last_index - self._capacity, self._last_index - 1) self._set_y_range() self._chart.axisY().hide() # self._chart.setBackgroundBrush(QBrush(QColor("#EFEFF4"))) self._view = QtCharts.QChartView(self._chart, self._parent) self._view.setRenderHint(QPainter.Antialiasing) self._view.setFixedSize(self._parent.size()) self._view.chart().legend().hide() self._chart.resize(self._view.width(), self._view.height()) text_start = "" self._scale_line = ScaleLine(self._chart, QColor("#777777"), QColor("black"), text_start=text_start, margins=margins, dp=dp, is_upload=is_upload) self._scale_line.set_line(self._last_max_speed, resize=True)
def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(539, 629) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) MainWindow.setMinimumSize(QSize(500, 420)) font = QFont() font.setFamily(u"Titillium Web") font.setPointSize(10) MainWindow.setFont(font) icon = QIcon() icon.addFile(u":/res/ui/guiscrcpy_logo.png", QSize(), QIcon.Normal, QIcon.Off) MainWindow.setWindowIcon(icon) MainWindow.setStyleSheet(u"QPushButton {\n" "border-radius: 10px;\n" " background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 255, 255, 255), stop:1 rgba(0, 255, 152, 255));\n" "color: rgb(0, 0, 0);\n" "}\n" "QPushButton:pressed {\n" "border-radius: 10px;\n" "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 255, 255, 255), stop:1 rgba(0, 255, 152, 255));\n" "color: rgb(0, 0, 0);\n" "}\n" ".QPushButton:hover {\n" "border-radius: 10px;\n" " background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 199, 199, 255), stop:1 rgba(0, 190, 113, 255));\n" "color: rgb(0, 0, 0);\n" " }\n" ".QPushButton#quit{\n" " background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:0, stop:0 rgba(255, 0, 0, 255), stop:1 rgba(255, 155, 0, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" " }\n" ".QPushButton#quit:hover{ \n" " background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:0, stop:0 rgba(172, 0, 0," " 255), stop:1 rgba(175, 106, 0, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" " }\n" ".QPushButton#usbaud{\n" "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 255, 255), stop:0.901961 rgba(152, 0, 255, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" "}\n" ".QPushButton#usbaud:hover{ \n" " background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:0, stop:0 rgba(172, 0, 0, 255), stop:1 rgba(175, 106, 0, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" "}\n" ".QPushButton#mapnow{\n" "background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:0, stop:0 rgba(253, 0, 255, 255), stop:0.990196 rgba(88, 0, 255, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" " }\n" ".QPushButton#initmapnow{\n" "background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:0, stop:0.0196078 rgba(0, 141, 255, 255), stop:1 rgba(52, 0, 255, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" "}\n" "." "QPushButton#initmapnow:hover{\n" "background-color:qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:0, stop:0.0196078 rgba(0, 72, 131, 255), stop:1 rgba(24, 0, 122, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" " }\n" ".QPushButton#mapnow:hover{\n" "background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:0, stop:0 rgba(199, 0, 255, 255), stop:0.990196 rgba(88, 0, 255, 255));\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" "}\n" ".QPushButton#network_button{\n" "background-color: rgb(10, 10, 10);\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px; \n" " }\n" ".QPushButton#settings_button{\n" "background-color: rgb(10, 10, 10);\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px; \n" " }\n" ".QPushButton#refreshdevices{\n" "background-color: rgb(10, 10, 10);\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px; \n" " }\n" ".QPushButton#restart_adb_server{\n" "background-color: rgb(10, 10, 10);\n" "color: rgb(0, 0, 0);\n" "border-radius: 10px; \n" " }\n" "\n" "\n" "\n" "") MainWindow.setUnifiedTitleAndToolBarOnMac(False) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.centralwidget.setEnabled(True) sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy1.setHorizontalStretch(24) sizePolicy1.setVerticalStretch(25) sizePolicy1.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth()) self.centralwidget.setSizePolicy(sizePolicy1) self.centralwidget.setMinimumSize(QSize(500, 300)) self.centralwidget.setStyleSheet(u"") self.gridLayout_5 = QGridLayout(self.centralwidget) self.gridLayout_5.setObjectName(u"gridLayout_5") self.frame = QFrame(self.centralwidget) self.frame.setObjectName(u"frame") sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) self.frame.setSizePolicy(sizePolicy2) self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setObjectName(u"verticalLayout") self.verticalLayout.setSizeConstraint(QLayout.SetMaximumSize) self.verticalLayout.setContentsMargins(7, 1, 7, -1) self.gridLayout_4 = QGridLayout() self.gridLayout_4.setObjectName(u"gridLayout_4") self.gridLayout_4.setSizeConstraint(QLayout.SetMinimumSize) self.gridLayout_4.setVerticalSpacing(1) self.fullscreen = QCheckBox(self.frame) self.fullscreen.setObjectName(u"fullscreen") sizePolicy2.setHeightForWidth(self.fullscreen.sizePolicy().hasHeightForWidth()) self.fullscreen.setSizePolicy(sizePolicy2) self.fullscreen.setMinimumSize(QSize(10, 20)) font1 = QFont() font1.setFamily(u"Noto Sans") font1.setPointSize(10) self.fullscreen.setFont(font1) icon1 = QIcon() icon1.addFile(u":/icons/icons/increase-size-option.svg", QSize(), QIcon.Normal, QIcon.Off) self.fullscreen.setIcon(icon1) self.gridLayout_4.addWidget(self.fullscreen, 0, 4, 1, 1) self.aotop = QCheckBox(self.frame) self.aotop.setObjectName(u"aotop") sizePolicy2.setHeightForWidth(self.aotop.sizePolicy().hasHeightForWidth()) self.aotop.setSizePolicy(sizePolicy2) self.aotop.setMinimumSize(QSize(10, 20)) self.aotop.setFont(font1) self.aotop.setToolTipDuration(2) icon2 = QIcon() icon2.addFile(u":/icons/icons/fire-symbol.svg", QSize(), QIcon.Normal, QIcon.Off) self.aotop.setIcon(icon2) self.gridLayout_4.addWidget(self.aotop, 1, 5, 1, 1) self.refreshdevices = QPushButton(self.frame) self.refreshdevices.setObjectName(u"refreshdevices") sizePolicy2.setHeightForWidth(self.refreshdevices.sizePolicy().hasHeightForWidth()) self.refreshdevices.setSizePolicy(sizePolicy2) self.refreshdevices.setMinimumSize(QSize(22, 22)) self.refreshdevices.setMaximumSize(QSize(30, 16777215)) icon3 = QIcon() icon3.addFile(u":/icons/icons/refresh-page-option.svg", QSize(), QIcon.Normal, QIcon.Off) self.refreshdevices.setIcon(icon3) self.refreshdevices.setIconSize(QSize(15, 15)) self.gridLayout_4.addWidget(self.refreshdevices, 7, 2, 1, 1) self.check_swipe_panel = QCheckBox(self.frame) self.check_swipe_panel.setObjectName(u"check_swipe_panel") self.check_swipe_panel.setFont(font1) icon4 = QIcon() icon4.addFile(u":/icons/icons/guiscrcpy_swipe_panel.svg", QSize(), QIcon.Normal, QIcon.Off) self.check_swipe_panel.setIcon(icon4) self.gridLayout_4.addWidget(self.check_swipe_panel, 2, 0, 1, 4) self.showTouches = QCheckBox(self.frame) self.showTouches.setObjectName(u"showTouches") sizePolicy2.setHeightForWidth(self.showTouches.sizePolicy().hasHeightForWidth()) self.showTouches.setSizePolicy(sizePolicy2) self.showTouches.setMinimumSize(QSize(10, 20)) self.showTouches.setFont(font1) icon5 = QIcon() icon5.addFile(u":/icons/icons/hand-finger-pointing-down.svg", QSize(), QIcon.Normal, QIcon.Off) self.showTouches.setIcon(icon5) self.gridLayout_4.addWidget(self.showTouches, 2, 4, 1, 1) self.recScui = QCheckBox(self.frame) self.recScui.setObjectName(u"recScui") self.recScui.setEnabled(True) sizePolicy2.setHeightForWidth(self.recScui.sizePolicy().hasHeightForWidth()) self.recScui.setSizePolicy(sizePolicy2) self.recScui.setMinimumSize(QSize(10, 20)) font2 = QFont() font2.setFamily(u"Noto Sans") font2.setPointSize(10) font2.setBold(False) font2.setItalic(False) font2.setWeight(50) self.recScui.setFont(font2) self.recScui.setToolTipDuration(2) icon6 = QIcon() icon6.addFile(u":/icons/icons/facetime-button.svg", QSize(), QIcon.Normal, QIcon.Off) self.recScui.setIcon(icon6) self.gridLayout_4.addWidget(self.recScui, 0, 5, 1, 1) self.displayForceOn = QCheckBox(self.frame) self.displayForceOn.setObjectName(u"displayForceOn") sizePolicy2.setHeightForWidth(self.displayForceOn.sizePolicy().hasHeightForWidth()) self.displayForceOn.setSizePolicy(sizePolicy2) self.displayForceOn.setMinimumSize(QSize(10, 20)) self.displayForceOn.setFont(font1) self.displayForceOn.setToolTipDuration(2) icon7 = QIcon() icon7.addFile(u":/icons/icons/bullseye.svg", QSize(), QIcon.Normal, QIcon.Off) self.displayForceOn.setIcon(icon7) self.gridLayout_4.addWidget(self.displayForceOn, 1, 4, 1, 1) self.lock_rotation = QCheckBox(self.frame) self.lock_rotation.setObjectName(u"lock_rotation") self.lock_rotation.setFont(font1) icon8 = QIcon() icon8.addFile(u":/icons/icons/padlock.svg", QSize(), QIcon.Normal, QIcon.Off) self.lock_rotation.setIcon(icon8) self.gridLayout_4.addWidget(self.lock_rotation, 2, 5, 1, 1) self.check_bottom_panel = QCheckBox(self.frame) self.check_bottom_panel.setObjectName(u"check_bottom_panel") self.check_bottom_panel.setFont(font1) icon9 = QIcon() icon9.addFile(u":/icons/icons/guiscrcpy_bottom_panel.svg", QSize(), QIcon.Normal, QIcon.Off) self.check_bottom_panel.setIcon(icon9) self.gridLayout_4.addWidget(self.check_bottom_panel, 0, 0, 1, 4) self.network_button = QPushButton(self.frame) self.network_button.setObjectName(u"network_button") sizePolicy3 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) sizePolicy3.setHorizontalStretch(0) sizePolicy3.setVerticalStretch(0) sizePolicy3.setHeightForWidth(self.network_button.sizePolicy().hasHeightForWidth()) self.network_button.setSizePolicy(sizePolicy3) self.network_button.setToolTipDuration(2) icon10 = QIcon() icon10.addFile(u":/icons/icons/wifi.svg", QSize(), QIcon.Normal, QIcon.Off) self.network_button.setIcon(icon10) self.gridLayout_4.addWidget(self.network_button, 7, 0, 1, 1) self.check_side_panel = QCheckBox(self.frame) self.check_side_panel.setObjectName(u"check_side_panel") self.check_side_panel.setFont(font1) icon11 = QIcon() icon11.addFile(u":/icons/icons/guiscrcpy_side_panel.svg", QSize(), QIcon.Normal, QIcon.Off) self.check_side_panel.setIcon(icon11) self.gridLayout_4.addWidget(self.check_side_panel, 1, 0, 1, 4) self.settings_button = QPushButton(self.frame) self.settings_button.setObjectName(u"settings_button") sizePolicy3.setHeightForWidth(self.settings_button.sizePolicy().hasHeightForWidth()) self.settings_button.setSizePolicy(sizePolicy3) icon12 = QIcon() icon12.addFile(u":/icons/icons/gear.svg", QSize(), QIcon.Normal, QIcon.Off) self.settings_button.setIcon(icon12) self.gridLayout_4.addWidget(self.settings_button, 7, 1, 1, 1) self.device_rotation = QComboBox(self.frame) self.device_rotation.addItem("") self.device_rotation.addItem("") self.device_rotation.addItem("") self.device_rotation.addItem("") self.device_rotation.addItem("") self.device_rotation.setObjectName(u"device_rotation") font3 = QFont() font3.setFamily(u"Noto Sans") font3.setPointSize(11) self.device_rotation.setFont(font3) self.gridLayout_4.addWidget(self.device_rotation, 7, 5, 1, 1) self.restart_adb_server = QPushButton(self.frame) self.restart_adb_server.setObjectName(u"restart_adb_server") sizePolicy2.setHeightForWidth(self.restart_adb_server.sizePolicy().hasHeightForWidth()) self.restart_adb_server.setSizePolicy(sizePolicy2) self.restart_adb_server.setMinimumSize(QSize(22, 22)) self.restart_adb_server.setMaximumSize(QSize(30, 16777215)) self.restart_adb_server.setToolTipDuration(2) self.restart_adb_server.setIcon(icon7) self.restart_adb_server.setIconSize(QSize(15, 15)) self.gridLayout_4.addWidget(self.restart_adb_server, 7, 3, 1, 1) self.verticalLayout.addLayout(self.gridLayout_4) self.devices_view = QListWidget(self.frame) icon13 = QIcon() icon13.addFile(u":/icons/icons/android.svg", QSize(), QIcon.Normal, QIcon.Off) __qlistwidgetitem = QListWidgetItem(self.devices_view) __qlistwidgetitem.setTextAlignment(Qt.AlignCenter); __qlistwidgetitem.setIcon(icon13); self.devices_view.setObjectName(u"devices_view") sizePolicy2.setHeightForWidth(self.devices_view.sizePolicy().hasHeightForWidth()) self.devices_view.setSizePolicy(sizePolicy2) self.devices_view.setMaximumSize(QSize(16777215, 90)) font4 = QFont() font4.setFamily(u"Noto Sans") font4.setPointSize(9) self.devices_view.setFont(font4) self.devices_view.setAutoFillBackground(True) self.devices_view.setStyleSheet(u"alternate-background-color: rgb(35, 35, 35);") self.devices_view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.devices_view.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents) self.devices_view.setAutoScrollMargin(9) self.devices_view.setAlternatingRowColors(True) self.devices_view.setIconSize(QSize(35, 35)) self.devices_view.setTextElideMode(Qt.ElideMiddle) self.devices_view.setProperty("isWrapping", False) self.devices_view.setResizeMode(QListView.Adjust) self.devices_view.setViewMode(QListView.IconMode) self.devices_view.setUniformItemSizes(True) self.devices_view.setBatchSize(100) self.devices_view.setItemAlignment(Qt.AlignCenter) self.devices_view.setSortingEnabled(True) self.verticalLayout.addWidget(self.devices_view) self.private_message_box_adb = QPushButton(self.frame) self.private_message_box_adb.setObjectName(u"private_message_box_adb") sizePolicy2.setHeightForWidth(self.private_message_box_adb.sizePolicy().hasHeightForWidth()) self.private_message_box_adb.setSizePolicy(sizePolicy2) self.private_message_box_adb.setFont(font3) self.verticalLayout.addWidget(self.private_message_box_adb) self.gridLayout_3 = QGridLayout() self.gridLayout_3.setSpacing(0) self.gridLayout_3.setObjectName(u"gridLayout_3") self.dimensionDefaultCheckbox = QCheckBox(self.frame) self.dimensionDefaultCheckbox.setObjectName(u"dimensionDefaultCheckbox") sizePolicy2.setHeightForWidth(self.dimensionDefaultCheckbox.sizePolicy().hasHeightForWidth()) self.dimensionDefaultCheckbox.setSizePolicy(sizePolicy2) font5 = QFont() font5.setFamily(u"Noto Sans") font5.setPointSize(11) font5.setBold(False) font5.setItalic(False) font5.setWeight(50) self.dimensionDefaultCheckbox.setFont(font5) self.dimensionDefaultCheckbox.setChecked(True) self.gridLayout_3.addWidget(self.dimensionDefaultCheckbox, 0, 3, 1, 2) self.label = QLabel(self.frame) self.label.setObjectName(u"label") sizePolicy2.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy2) self.label.setFont(font3) self.gridLayout_3.addWidget(self.label, 0, 1, 1, 1) self.bitrateText = QLineEdit(self.frame) self.bitrateText.setObjectName(u"bitrateText") sizePolicy2.setHeightForWidth(self.bitrateText.sizePolicy().hasHeightForWidth()) self.bitrateText.setSizePolicy(sizePolicy2) font6 = QFont() font6.setFamily(u"Titillium Web") font6.setPointSize(26) font6.setBold(True) font6.setWeight(75) self.bitrateText.setFont(font6) self.bitrateText.setStyleSheet(u"color: rgb(0, 0, 0);\n" "border-radius: 10px;\n" "\n" "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 255, 255, 255), stop:1 rgba(0, 255, 0, 255));") self.bitrateText.setAlignment(Qt.AlignCenter) self.gridLayout_3.addWidget(self.bitrateText, 2, 1, 1, 1) self.dial = QDial(self.frame) self.dial.setObjectName(u"dial") sizePolicy4 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) sizePolicy4.setHorizontalStretch(0) sizePolicy4.setVerticalStretch(0) sizePolicy4.setHeightForWidth(self.dial.sizePolicy().hasHeightForWidth()) self.dial.setSizePolicy(sizePolicy4) self.dial.setFont(font3) self.dial.setCursor(QCursor(Qt.SizeHorCursor)) self.dial.setToolTipDuration(2) self.dial.setStyleSheet(u"background-color: rgb(0, 255, 255);\n" "color: rgb(255, 0, 127);\n" "gridline-color: rgb(255, 0, 0);\n" "selection-background-color: rgb(12, 255, 0);\n" "\n" "image: url(:/res/ui/guiscrcpy_logo.png);") self.dial.setMinimum(64) self.dial.setMaximum(16000) self.dial.setSingleStep(2) self.dial.setValue(8000) self.dial.setOrientation(Qt.Horizontal) self.dial.setInvertedAppearance(False) self.dial.setInvertedControls(False) self.dial.setWrapping(False) self.dial.setNotchTarget(20.000000000000000) self.dial.setNotchesVisible(True) self.gridLayout_3.addWidget(self.dial, 0, 0, 4, 1) self.label_2 = QLabel(self.frame) self.label_2.setObjectName(u"label_2") self.gridLayout_3.addWidget(self.label_2, 0, 5, 1, 1) self.dimensionSlider = QSlider(self.frame) self.dimensionSlider.setObjectName(u"dimensionSlider") self.dimensionSlider.setEnabled(False) sizePolicy2.setHeightForWidth(self.dimensionSlider.sizePolicy().hasHeightForWidth()) self.dimensionSlider.setSizePolicy(sizePolicy2) self.dimensionSlider.setStyleSheet(u"color: rgb(255, 255, 255);") self.dimensionSlider.setMinimum(320) self.dimensionSlider.setMaximum(2048) self.dimensionSlider.setValue(1280) self.dimensionSlider.setOrientation(Qt.Horizontal) self.gridLayout_3.addWidget(self.dimensionSlider, 3, 2, 1, 4) self.dimensionText = QLineEdit(self.frame) self.dimensionText.setObjectName(u"dimensionText") sizePolicy2.setHeightForWidth(self.dimensionText.sizePolicy().hasHeightForWidth()) self.dimensionText.setSizePolicy(sizePolicy2) self.dimensionText.setFont(font6) self.dimensionText.setStyleSheet(u"color: rgb(255, 255, 255);\n" "background-color: rgb(17, 17, 17);\n" "border-radius: 10px;\n" "") self.dimensionText.setMaxLength(32767) self.dimensionText.setAlignment(Qt.AlignCenter) self.gridLayout_3.addWidget(self.dimensionText, 2, 3, 1, 3) self.verticalLayout.addLayout(self.gridLayout_3) self.flaglineedit = QLineEdit(self.frame) self.flaglineedit.setObjectName(u"flaglineedit") sizePolicy5 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum) sizePolicy5.setHorizontalStretch(0) sizePolicy5.setVerticalStretch(0) sizePolicy5.setHeightForWidth(self.flaglineedit.sizePolicy().hasHeightForWidth()) self.flaglineedit.setSizePolicy(sizePolicy5) font7 = QFont() font7.setFamily(u"Monospace") self.flaglineedit.setFont(font7) self.verticalLayout.addWidget(self.flaglineedit) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setSpacing(5) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.quit = QPushButton(self.frame) self.quit.setObjectName(u"quit") sizePolicy6 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Maximum) sizePolicy6.setHorizontalStretch(0) sizePolicy6.setVerticalStretch(0) sizePolicy6.setHeightForWidth(self.quit.sizePolicy().hasHeightForWidth()) self.quit.setSizePolicy(sizePolicy6) self.quit.setMinimumSize(QSize(45, 45)) self.quit.setToolTipDuration(2) self.quit.setStyleSheet(u"") icon14 = QIcon() icon14.addFile(u":/icons/icons/cross-mark-on-a-black-circle-background.svg", QSize(), QIcon.Normal, QIcon.Off) self.quit.setIcon(icon14) self.horizontalLayout.addWidget(self.quit) self.pushButton = QPushButton(self.frame) self.pushButton.setObjectName(u"pushButton") sizePolicy7 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy7.setHorizontalStretch(0) sizePolicy7.setVerticalStretch(0) sizePolicy7.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) self.pushButton.setSizePolicy(sizePolicy7) self.pushButton.setMinimumSize(QSize(45, 45)) font8 = QFont() font8.setFamily(u"Titillium Web") font8.setPointSize(11) font8.setBold(True) font8.setWeight(75) self.pushButton.setFont(font8) self.pushButton.setToolTipDuration(2) self.horizontalLayout.addWidget(self.pushButton) self.abtgit = QPushButton(self.frame) self.abtgit.setObjectName(u"abtgit") sizePolicy8 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) sizePolicy8.setHorizontalStretch(0) sizePolicy8.setVerticalStretch(0) sizePolicy8.setHeightForWidth(self.abtgit.sizePolicy().hasHeightForWidth()) self.abtgit.setSizePolicy(sizePolicy8) self.abtgit.setMinimumSize(QSize(45, 45)) icon15 = QIcon() icon15.addFile(u":/icons/icons/github.logo.svg", QSize(), QIcon.Normal, QIcon.Off) self.abtgit.setIcon(icon15) self.abtgit.setIconSize(QSize(20, 20)) self.horizontalLayout.addWidget(self.abtgit) self.usbaud = QPushButton(self.frame) self.usbaud.setObjectName(u"usbaud") sizePolicy9 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) sizePolicy9.setHorizontalStretch(11) sizePolicy9.setVerticalStretch(0) sizePolicy9.setHeightForWidth(self.usbaud.sizePolicy().hasHeightForWidth()) self.usbaud.setSizePolicy(sizePolicy9) self.usbaud.setMinimumSize(QSize(45, 45)) icon16 = QIcon() icon16.addFile(u":/icons/icons/volume-up-interface-symbol.svg", QSize(), QIcon.Normal, QIcon.Off) self.usbaud.setIcon(icon16) self.horizontalLayout.addWidget(self.usbaud) self.initmapnow = QPushButton(self.frame) self.initmapnow.setObjectName(u"initmapnow") sizePolicy9.setHeightForWidth(self.initmapnow.sizePolicy().hasHeightForWidth()) self.initmapnow.setSizePolicy(sizePolicy9) self.initmapnow.setMinimumSize(QSize(45, 45)) self.initmapnow.setToolTipDuration(3) icon17 = QIcon() icon17.addFile(u":/icons/icons/mapper_init.svg", QSize(), QIcon.Normal, QIcon.Off) self.initmapnow.setIcon(icon17) self.initmapnow.setIconSize(QSize(40, 40)) self.horizontalLayout.addWidget(self.initmapnow) self.executeaction = QPushButton(self.frame) self.executeaction.setObjectName(u"executeaction") sizePolicy5.setHeightForWidth(self.executeaction.sizePolicy().hasHeightForWidth()) self.executeaction.setSizePolicy(sizePolicy5) self.executeaction.setMinimumSize(QSize(45, 45)) font9 = QFont() font9.setFamily(u"Titillium Web") font9.setPointSize(11) font9.setBold(True) font9.setItalic(False) font9.setWeight(75) self.executeaction.setFont(font9) self.executeaction.setStyleSheet(u"") icon18 = QIcon() icon18.addFile(u":/icons/icons/small-rocket-ship-silhouette.svg", QSize(), QIcon.Normal, QIcon.Off) self.executeaction.setIcon(icon18) self.executeaction.setIconSize(QSize(20, 16)) self.horizontalLayout.addWidget(self.executeaction) self.verticalLayout.addLayout(self.horizontalLayout) self.progressBar = QProgressBar(self.frame) self.progressBar.setObjectName(u"progressBar") palette = QPalette() brush = QBrush(QColor(255, 255, 255, 255)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Active, QPalette.WindowText, brush) gradient = QLinearGradient(0, 0, 1, 0) gradient.setSpread(QGradient.PadSpread) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) gradient.setColorAt(0, QColor(0, 255, 255, 255)) gradient.setColorAt(1, QColor(0, 255, 0, 255)) brush1 = QBrush(gradient) palette.setBrush(QPalette.Active, QPalette.Button, brush1) palette.setBrush(QPalette.Active, QPalette.Text, brush) palette.setBrush(QPalette.Active, QPalette.ButtonText, brush) gradient1 = QLinearGradient(0, 0, 1, 0) gradient1.setSpread(QGradient.PadSpread) gradient1.setCoordinateMode(QGradient.ObjectBoundingMode) gradient1.setColorAt(0, QColor(0, 255, 255, 255)) gradient1.setColorAt(1, QColor(0, 255, 0, 255)) brush2 = QBrush(gradient1) palette.setBrush(QPalette.Active, QPalette.Base, brush2) gradient2 = QLinearGradient(0, 0, 1, 0) gradient2.setSpread(QGradient.PadSpread) gradient2.setCoordinateMode(QGradient.ObjectBoundingMode) gradient2.setColorAt(0, QColor(0, 255, 255, 255)) gradient2.setColorAt(1, QColor(0, 255, 0, 255)) brush3 = QBrush(gradient2) palette.setBrush(QPalette.Active, QPalette.Window, brush3) brush4 = QBrush(QColor(85, 255, 0, 255)) brush4.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Active, QPalette.Highlight, brush4) palette.setBrush(QPalette.Active, QPalette.HighlightedText, brush) brush5 = QBrush(QColor(255, 255, 255, 128)) brush5.setStyle(Qt.NoBrush) #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) palette.setBrush(QPalette.Active, QPalette.PlaceholderText, brush5) #endif palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush) gradient3 = QLinearGradient(0, 0, 1, 0) gradient3.setSpread(QGradient.PadSpread) gradient3.setCoordinateMode(QGradient.ObjectBoundingMode) gradient3.setColorAt(0, QColor(0, 255, 255, 255)) gradient3.setColorAt(1, QColor(0, 255, 0, 255)) brush6 = QBrush(gradient3) palette.setBrush(QPalette.Inactive, QPalette.Button, brush6) palette.setBrush(QPalette.Inactive, QPalette.Text, brush) palette.setBrush(QPalette.Inactive, QPalette.ButtonText, brush) gradient4 = QLinearGradient(0, 0, 1, 0) gradient4.setSpread(QGradient.PadSpread) gradient4.setCoordinateMode(QGradient.ObjectBoundingMode) gradient4.setColorAt(0, QColor(0, 255, 255, 255)) gradient4.setColorAt(1, QColor(0, 255, 0, 255)) brush7 = QBrush(gradient4) palette.setBrush(QPalette.Inactive, QPalette.Base, brush7) gradient5 = QLinearGradient(0, 0, 1, 0) gradient5.setSpread(QGradient.PadSpread) gradient5.setCoordinateMode(QGradient.ObjectBoundingMode) gradient5.setColorAt(0, QColor(0, 255, 255, 255)) gradient5.setColorAt(1, QColor(0, 255, 0, 255)) brush8 = QBrush(gradient5) palette.setBrush(QPalette.Inactive, QPalette.Window, brush8) palette.setBrush(QPalette.Inactive, QPalette.Highlight, brush4) palette.setBrush(QPalette.Inactive, QPalette.HighlightedText, brush) brush9 = QBrush(QColor(255, 255, 255, 128)) brush9.setStyle(Qt.NoBrush) #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) palette.setBrush(QPalette.Inactive, QPalette.PlaceholderText, brush9) #endif palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush) gradient6 = QLinearGradient(0, 0, 1, 0) gradient6.setSpread(QGradient.PadSpread) gradient6.setCoordinateMode(QGradient.ObjectBoundingMode) gradient6.setColorAt(0, QColor(0, 255, 255, 255)) gradient6.setColorAt(1, QColor(0, 255, 0, 255)) brush10 = QBrush(gradient6) palette.setBrush(QPalette.Disabled, QPalette.Button, brush10) palette.setBrush(QPalette.Disabled, QPalette.Text, brush) palette.setBrush(QPalette.Disabled, QPalette.ButtonText, brush) gradient7 = QLinearGradient(0, 0, 1, 0) gradient7.setSpread(QGradient.PadSpread) gradient7.setCoordinateMode(QGradient.ObjectBoundingMode) gradient7.setColorAt(0, QColor(0, 255, 255, 255)) gradient7.setColorAt(1, QColor(0, 255, 0, 255)) brush11 = QBrush(gradient7) palette.setBrush(QPalette.Disabled, QPalette.Base, brush11) gradient8 = QLinearGradient(0, 0, 1, 0) gradient8.setSpread(QGradient.PadSpread) gradient8.setCoordinateMode(QGradient.ObjectBoundingMode) gradient8.setColorAt(0, QColor(0, 255, 255, 255)) gradient8.setColorAt(1, QColor(0, 255, 0, 255)) brush12 = QBrush(gradient8) palette.setBrush(QPalette.Disabled, QPalette.Window, brush12) palette.setBrush(QPalette.Disabled, QPalette.Highlight, brush4) palette.setBrush(QPalette.Disabled, QPalette.HighlightedText, brush) brush13 = QBrush(QColor(255, 255, 255, 128)) brush13.setStyle(Qt.NoBrush) #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) palette.setBrush(QPalette.Disabled, QPalette.PlaceholderText, brush13) #endif self.progressBar.setPalette(palette) self.progressBar.setFont(font) self.progressBar.setStyleSheet(u"") self.progressBar.setValue(100) self.verticalLayout.addWidget(self.progressBar) self.gridLayout_5.addWidget(self.frame, 1, 0, 1, 1) self.frame1 = QFrame(self.centralwidget) self.frame1.setObjectName(u"frame1") self.horizontalLayout_2 = QHBoxLayout(self.frame1) self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setSizeConstraint(QLayout.SetMaximumSize) self.label_4 = QLabel(self.frame1) self.label_4.setObjectName(u"label_4") sizePolicy10 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy10.setHorizontalStretch(0) sizePolicy10.setVerticalStretch(0) sizePolicy10.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy10) self.label_4.setMinimumSize(QSize(60, 60)) self.label_4.setMaximumSize(QSize(60, 60)) self.label_4.setPixmap(QPixmap(u":/res/ui/guiscrcpy_logo.png")) self.label_4.setScaledContents(True) self.horizontalLayout_2.addWidget(self.label_4) self.verticalLayout_2 = QVBoxLayout() self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.verticalLayout_2.setSizeConstraint(QLayout.SetMaximumSize) self.label_3 = QLabel(self.frame1) self.label_3.setObjectName(u"label_3") sizePolicy8.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth()) self.label_3.setSizePolicy(sizePolicy8) font10 = QFont() font10.setFamily(u"Titillium Web") font10.setPointSize(28) font10.setBold(True) font10.setItalic(False) font10.setWeight(75) self.label_3.setFont(font10) self.label_3.setStyleSheet(u"") self.verticalLayout_2.addWidget(self.label_3) self.build_label = QLabel(self.frame1) self.build_label.setObjectName(u"build_label") sizePolicy5.setHeightForWidth(self.build_label.sizePolicy().hasHeightForWidth()) self.build_label.setSizePolicy(sizePolicy5) font11 = QFont() font11.setFamily(u"Noto Sans") self.build_label.setFont(font11) self.build_label.setStyleSheet(u"color: rgb(255, 255, 255);") self.verticalLayout_2.addWidget(self.build_label) self.horizontalLayout_2.addLayout(self.verticalLayout_2) self.gridLayout_5.addWidget(self.frame1, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") self.statusbar.setFont(font) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow)
def __init__(self, model): super().__init__() self.setWindowTitle("OpenHRV") self.setWindowIcon(QIcon(":/logo.png")) self.setGeometry(50, 50, 1750, 850) self.model = model self.signals = ViewSignals() self.scanner = SensorScanner() self.scanner_thread = QThread(self) self.scanner.moveToThread(self.scanner_thread) self.scanner.mac_update.connect(self.model.set_mac_addresses) self.sensor = SensorClient() self.sensor_thread = QThread(self) self.sensor.moveToThread(self.sensor_thread) self.sensor.ibi_update.connect(self.model.set_ibis_buffer) self.sensor_thread.started.connect(self.sensor.run) self.redis_publisher = RedisPublisher() self.redis_publisher_thread = QThread(self) self.redis_publisher.moveToThread(self.redis_publisher_thread) self.model.ibis_buffer_update.connect(self.redis_publisher.publish) self.model.mean_hrv_update.connect(self.redis_publisher.publish) self.model.mac_addresses_update.connect(self.redis_publisher.publish) self.model.pacer_rate_update.connect(self.redis_publisher.publish) self.model.hrv_target_update.connect(self.redis_publisher.publish) self.model.biofeedback_update.connect(self.redis_publisher.publish) self.signals.annotation.connect(self.redis_publisher.publish) self.redis_publisher_thread.started.connect( self.redis_publisher.monitor.start) self.redis_logger = RedisLogger() self.redis_logger_thread = QThread(self) self.redis_logger.moveToThread(self.redis_logger_thread) self.redis_logger_thread.finished.connect( self.redis_logger.save_recording) self.redis_logger.recording_status.connect(self.show_recording_status) self.ibis_plot = pg.PlotWidget() self.ibis_plot.setBackground("w") self.ibis_plot.setLabel("left", "Inter-Beat-Interval (msec)", **{"font-size": "25px"}) self.ibis_plot.setLabel("bottom", "Seconds", **{"font-size": "25px"}) self.ibis_plot.showGrid(y=True) self.ibis_plot.setYRange(300, 1500, padding=0) self.ibis_plot.setMouseEnabled(x=False, y=False) self.ibis_signal = pg.PlotCurveItem() pen = pg.mkPen(color=(0, 191, 255), width=7.5) self.ibis_signal.setPen(pen) self.ibis_signal.setData(self.model.ibis_seconds, self.model.ibis_buffer) self.ibis_plot.addItem(self.ibis_signal) self.mean_hrv_plot = pg.PlotWidget() self.mean_hrv_plot.setBackground("w") self.mean_hrv_plot.setLabel("left", "HRV (msec)", **{"font-size": "25px"}) self.mean_hrv_plot.setLabel("bottom", "Seconds", **{"font-size": "25px"}) self.mean_hrv_plot.showGrid(y=True) self.mean_hrv_plot.setYRange(0, 600, padding=0) self.mean_hrv_plot.setMouseEnabled(x=False, y=False) colorgrad = QLinearGradient(0, 0, 0, 1) # horizontal gradient colorgrad.setCoordinateMode(QGradient.ObjectMode) colorgrad.setColorAt(0, pg.mkColor("g")) colorgrad.setColorAt(.5, pg.mkColor("y")) colorgrad.setColorAt(1, pg.mkColor("r")) brush = QBrush(colorgrad) self.mean_hrv_plot.getViewBox().setBackgroundColor(brush) self.mean_hrv_signal = pg.PlotCurveItem() pen = pg.mkPen(color="w", width=7.5) self.mean_hrv_signal.setPen(pen) self.mean_hrv_signal.setData(self.model.mean_hrv_seconds, self.model.mean_hrv_buffer) self.mean_hrv_plot.addItem(self.mean_hrv_signal) self.pacer_plot = pg.PlotWidget() self.pacer_plot.setBackground("w") self.pacer_plot.setAspectLocked(lock=True, ratio=1) self.pacer_plot.setMouseEnabled(x=False, y=False) self.pacer_plot.disableAutoRange() self.pacer_plot.setXRange(-1, 1, padding=0) self.pacer_plot.setYRange(-1, 1, padding=0) self.pacer_plot.hideAxis("left") self.pacer_plot.hideAxis("bottom") self.pacer_disc = pg.PlotCurveItem() brush = pg.mkBrush(color=(135, 206, 250)) self.pacer_disc.setBrush(brush) self.pacer_disc.setFillLevel(1) self.pacer_plot.addItem(self.pacer_disc) self.pacer_rate = QSlider(Qt.Horizontal) self.pacer_rate.setTracking(False) self.pacer_rate.setRange( 0, 6) # transformed to bpm [4, 7], step .5 by model self.pacer_rate.valueChanged.connect(self.model.set_breathing_rate) self.pacer_rate.setSliderPosition(4) # corresponds to 6 bpm self.pacer_label = QLabel(f"Rate: {self.model.breathing_rate}") self.pacer_toggle = QCheckBox("Show pacer", self) self.pacer_toggle.setChecked(True) self.pacer_toggle.stateChanged.connect(self.toggle_pacer) self.hrv_target_label = QLabel(f"Target: {self.model.hrv_target}") self.hrv_target = QSlider(Qt.Horizontal) self.hrv_target.setRange(50, 600) self.hrv_target.setSingleStep(10) self.hrv_target.valueChanged.connect(self.model.set_hrv_target) self.hrv_target.setSliderPosition(self.model.hrv_target) self.mean_hrv_plot.setYRange(0, self.model.hrv_target, padding=0) self.scan_button = QPushButton("Scan") self.scan_button.clicked.connect(self.scanner.scan) self.mac_menu = QComboBox() self.connect_button = QPushButton("Connect") self.connect_button.clicked.connect(self.connect_sensor) self.start_recording_button = QPushButton("Start") self.start_recording_button.clicked.connect( self.redis_logger.start_recording) self.save_recording_button = QPushButton("Save") self.save_recording_button.clicked.connect( self.redis_logger.save_recording) self.annotation = QComboBox() self.annotation.setEditable(True) self.annotation.setDuplicatesEnabled(False) self.annotation.addItems([ "start_baseline", "end_baseline", "start_bf", "end_bf", "start_nobf", "end_nobf" ]) self.annotation.setMaxCount( 10) # user can configure up to 4 additional custom annotations self.annotation_button = QPushButton("Annotate") self.annotation_button.clicked.connect(self.emit_annotation) self.central_widget = QWidget() self.setCentralWidget(self.central_widget) self.recording_status_label = QLabel("Status:") self.recording_statusbar = QProgressBar() self.recording_statusbar.setRange(0, 1) self.vlayout0 = QVBoxLayout(self.central_widget) self.hlayout0 = QHBoxLayout() self.hlayout0.addWidget(self.ibis_plot, stretch=80) self.hlayout0.addWidget(self.pacer_plot, stretch=20) self.vlayout0.addLayout(self.hlayout0) self.vlayout0.addWidget(self.mean_hrv_plot) self.hlayout1 = QHBoxLayout() self.device_config = QFormLayout() self.device_config.addRow(self.scan_button, self.mac_menu) self.device_config.addRow(self.connect_button) self.device_panel = QGroupBox("ECG Devices") self.device_panel.setLayout(self.device_config) self.hlayout1.addWidget(self.device_panel, stretch=25) self.hrv_config = QFormLayout() self.hrv_config.addRow(self.hrv_target_label, self.hrv_target) self.hrv_panel = QGroupBox("HRV Settings") self.hrv_panel.setLayout(self.hrv_config) self.hlayout1.addWidget(self.hrv_panel, stretch=25) self.pacer_config = QFormLayout() self.pacer_config.addRow(self.pacer_label, self.pacer_rate) self.pacer_config.addRow(self.pacer_toggle) self.pacer_panel = QGroupBox("Breathing Pacer") self.pacer_panel.setLayout(self.pacer_config) self.hlayout1.addWidget(self.pacer_panel, stretch=25) self.recording_config = QGridLayout() self.recording_config.addWidget(self.start_recording_button, 0, 0) self.recording_config.addWidget(self.save_recording_button, 0, 1) self.recording_config.addWidget(self.recording_statusbar, 0, 2) self.recording_config.addWidget(self.annotation, 1, 0, 1, 2) # row, column, rowspan, columnspan self.recording_config.addWidget(self.annotation_button, 1, 2) self.recording_panel = QGroupBox("Recording") self.recording_panel.setLayout(self.recording_config) self.hlayout1.addWidget(self.recording_panel, stretch=25) self.vlayout0.addLayout(self.hlayout1) self.model.ibis_buffer_update.connect(self.plot_ibis) self.model.mean_hrv_update.connect(self.plot_hrv) self.model.mac_addresses_update.connect(self.list_macs) self.model.pacer_disk_update.connect(self.plot_pacer_disk) self.model.pacer_rate_update.connect(self.update_pacer_label) self.model.hrv_target_update.connect(self.update_hrv_target) self.scanner_thread.start() self.sensor_thread.start() self.redis_publisher_thread.start() self.redis_logger_thread.start()
def __init__(self): super(AntaresLauncherScene, self).__init__() # ################## DATA PART ################## self.simulations = [] # ################## INIT SCENE ################## # self.setBackgroundBrush(Qt.black) qgradient = QLinearGradient() qgradient.setCoordinateMode(QGradient.ObjectBoundingMode) # qgradient.setColorAt(0.2, QColor("#180d28")) # qgradient.setColorAt(1.0, QColor("#001029")) qgradient.setColorAt(0.2, QColor("#001029")) qgradient.setColorAt(1.0, QColor("#180d28")) # self.setBackgroundBrush(QColor(17, 36, 71)) # self.setBackgroundBrush(QColor("#180d28")) self.setBackgroundBrush(qgradient) self.setSceneRect(0, 0, 2000, 2000) # self.x = -720 # self.y = -405 # self.width = 1440 # self.height = 810 # self.setSceneRect(-720, -405, 1440, 810) # self.setSceneRect(0, 0, 1440, 810) # don't understand why its not exactly 0,0 ton top left corner, if you print scene:mousePressEvent()scene.Pos() # if SceneRect.width is < than width of Window, then the scene grows de part et d'autre # |win <-- |scene| --> win | # |-5.0 <-- |0, 1400| --> 1405 | # self.setSceneRect(0.0, 0.0, 1440, 810) # self.addItem(Circle(QPoint(10, 10))) # axis = scene_objects.init_visual_scene_axis() # for ax in axis: # self.addItem(ax) # print(f"object {ax} has been added to the scene") # #################################################### simulations = ["BP_2019", "BP_2020", "BP_2021"] positions = [(-400, 100), (-400, 300), (-400, -100)] # select_folder = SelectFolderButton(0, 0, 300, 75, "Select Folder") # select_folder = SelectFolderButton(608, 50, 300, 75, "Select Folder") select_folder = SelectFolderButton(1150, 55, 300, 75, "Select Folder") self.addItem(select_folder) launch_button = LaunchButton(1150, 355, 300, 75, "Launch...") self.addItem(launch_button) # Text display for currentFolderDisplay # str representing the current_dir self.current_dir = None self.current_dir_display = CurrentFolderDisplay(50, 30, 750, 40, f" Simulations loaded from folder : {self.current_dir}") self.addItem(self.current_dir_display) select_folder.speak.connect(self.current_dir_display.on_update) select_folder.speak.connect(self.init_all_simus_blocks) self.latest_load_display = LatestLoadDisplay(50, 100, 400, 30, " None") self.addItem(self.latest_load_display) select_folder.speak.connect(self.latest_load_display.on_update) self.latest_sync_display = None
def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(1113, 802) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) font = QFont() font.setFamily(u"Microsoft YaHei UI") font.setPointSize(9) font.setBold(False) font.setItalic(False) font.setWeight(50) MainWindow.setFont(font) self.actionYea = QAction(MainWindow) self.actionYea.setObjectName(u"actionYea") self.actiond = QAction(MainWindow) self.actiond.setObjectName(u"actiond") self.actionda = QAction(MainWindow) self.actionda.setObjectName(u"actionda") self.action132 = QAction(MainWindow) self.action132.setObjectName(u"action132") self.action654 = QAction(MainWindow) self.action654.setObjectName(u"action654") self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.formLayout = QFormLayout(self.centralwidget) self.formLayout.setObjectName(u"formLayout") self.verticalLayout_2 = QVBoxLayout() self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.label = QLabel(self.centralwidget) self.label.setObjectName(u"label") font1 = QFont() font1.setFamily(u"\u817e\u8baf\u4f53") font1.setPointSize(13) font1.setBold(False) font1.setItalic(False) font1.setWeight(50) self.label.setFont(font1) self.horizontalLayout.addWidget(self.label) self.Download = QPushButton(self.centralwidget) self.Download.setObjectName(u"Download") self.Download.setEnabled(True) self.Download.setMaximumSize(QSize(500, 16777215)) font2 = QFont() font2.setFamily(u"Microsoft YaHei UI") font2.setPointSize(12) font2.setBold(False) font2.setItalic(False) font2.setWeight(50) self.Download.setFont(font2) self.horizontalLayout.addWidget(self.Download) self.verticalLayout_2.addLayout(self.horizontalLayout) self.tableWidget = QTableWidget(self.centralwidget) if (self.tableWidget.columnCount() < 2): self.tableWidget.setColumnCount(2) __qtablewidgetitem = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1) self.tableWidget.setObjectName(u"tableWidget") self.verticalLayout_2.addWidget(self.tableWidget) self.lineEdit_2 = QLineEdit(self.centralwidget) self.lineEdit_2.setObjectName(u"lineEdit_2") self.verticalLayout_2.addWidget(self.lineEdit_2) self.select1 = QPushButton(self.centralwidget) self.select1.setObjectName(u"select1") font3 = QFont() font3.setFamily(u"\u963f\u91cc\u5df4\u5df4\u666e\u60e0\u4f53 B") font3.setPointSize(12) font3.setBold(True) font3.setItalic(False) font3.setWeight(75) self.select1.setFont(font3) self.verticalLayout_2.addWidget(self.select1) self.GetData = QPushButton(self.centralwidget) self.GetData.setObjectName(u"GetData") self.GetData.setFont(font3) self.GetData.setStyleSheet(u"color: rgb(255, 112, 29);\n" "\n" "") self.GetData.setAutoRepeat(False) self.verticalLayout_2.addWidget(self.GetData) self.formLayout.setLayout(0, QFormLayout.LabelRole, self.verticalLayout_2) self.verticalLayout_9 = QVBoxLayout() self.verticalLayout_9.setObjectName(u"verticalLayout_9") self.groupBox = QGroupBox(self.centralwidget) self.groupBox.setObjectName(u"groupBox") palette = QPalette() brush = QBrush(QColor(197, 0, 0, 255)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Active, QPalette.WindowText, brush) palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush) brush1 = QBrush(QColor(120, 120, 120, 255)) brush1.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.groupBox.setPalette(palette) font4 = QFont() font4.setFamily(u"Microsoft YaHei UI") font4.setPointSize(12) self.groupBox.setFont(font4) self.groupBox.setStyleSheet(u"") self.verticalLayout_7 = QVBoxLayout(self.groupBox) self.verticalLayout_7.setObjectName(u"verticalLayout_7") self.horizontalLayout_8 = QHBoxLayout() self.horizontalLayout_8.setObjectName(u"horizontalLayout_8") self.horizontalLayout_8.setContentsMargins(-1, 15, -1, -1) self.select2 = QPushButton(self.groupBox) self.select2.setObjectName(u"select2") sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth( self.select2.sizePolicy().hasHeightForWidth()) self.select2.setSizePolicy(sizePolicy1) font5 = QFont() font5.setFamily(u"Microsoft YaHei UI") font5.setPointSize(10) font5.setBold(True) font5.setItalic(False) font5.setWeight(75) self.select2.setFont(font5) self.select2.setCheckable(False) self.horizontalLayout_8.addWidget(self.select2) self.horizontalSpacer = QSpacerItem(60, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_8.addItem(self.horizontalSpacer) self.comboBox = QComboBox(self.groupBox) self.comboBox.setObjectName(u"comboBox") sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy2.setHorizontalStretch(1) sizePolicy2.setVerticalStretch(5) sizePolicy2.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy2) self.horizontalLayout_8.addWidget(self.comboBox) self.verticalLayout_7.addLayout(self.horizontalLayout_8) self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setContentsMargins(-1, 10, -1, -1) self.label_2 = QLabel(self.groupBox) self.label_2.setObjectName(u"label_2") font6 = QFont() font6.setFamily(u"Microsoft YaHei UI") font6.setPointSize(10) self.label_2.setFont(font6) self.label_2.setStyleSheet(u"color: rgb(0, 0, 195);") self.horizontalLayout_2.addWidget(self.label_2) self.number = QLineEdit(self.groupBox) self.number.setObjectName(u"number") font7 = QFont() font7.setFamily(u"Microsoft YaHei UI") font7.setPointSize(9) self.number.setFont(font7) self.horizontalLayout_2.addWidget(self.number) self.label_5 = QLabel(self.groupBox) self.label_5.setObjectName(u"label_5") palette1 = QPalette() brush2 = QBrush(QColor(0, 0, 0, 255)) brush2.setStyle(Qt.SolidPattern) palette1.setBrush(QPalette.Active, QPalette.WindowText, brush2) palette1.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) palette1.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.label_5.setPalette(palette1) self.label_5.setFont(font6) self.horizontalLayout_2.addWidget(self.label_5) self.charsplit = QLineEdit(self.groupBox) self.charsplit.setObjectName(u"charsplit") self.charsplit.setFont(font7) self.horizontalLayout_2.addWidget(self.charsplit) self.verticalLayout_7.addLayout(self.horizontalLayout_2) self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") self.horizontalLayout_3.setContentsMargins(-1, 10, -1, -1) self.label_4 = QLabel(self.groupBox) self.label_4.setObjectName(u"label_4") palette2 = QPalette() palette2.setBrush(QPalette.Active, QPalette.WindowText, brush2) palette2.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) palette2.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.label_4.setPalette(palette2) self.label_4.setFont(font6) self.horizontalLayout_3.addWidget(self.label_4) self.FileNames = QLineEdit(self.groupBox) self.FileNames.setObjectName(u"FileNames") self.FileNames.setFont(font7) self.horizontalLayout_3.addWidget(self.FileNames) self.label_6 = QLabel(self.groupBox) self.label_6.setObjectName(u"label_6") palette3 = QPalette() palette3.setBrush(QPalette.Active, QPalette.WindowText, brush2) palette3.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) palette3.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.label_6.setPalette(palette3) self.label_6.setFont(font6) self.horizontalLayout_3.addWidget(self.label_6) self.ClassName = QLineEdit(self.groupBox) self.ClassName.setObjectName(u"ClassName") self.ClassName.setFont(font7) self.horizontalLayout_3.addWidget(self.ClassName) self.verticalLayout_7.addLayout(self.horizontalLayout_3) self.horizontalLayout_4 = QHBoxLayout() self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") self.horizontalLayout_4.setContentsMargins(-1, 10, -1, -1) self.label_7 = QLabel(self.groupBox) self.label_7.setObjectName(u"label_7") palette4 = QPalette() palette4.setBrush(QPalette.Active, QPalette.WindowText, brush2) palette4.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) palette4.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.label_7.setPalette(palette4) self.label_7.setFont(font6) self.horizontalLayout_4.addWidget(self.label_7) self.btn_delete = QPushButton(self.groupBox) self.btn_delete.setObjectName(u"btn_delete") sizePolicy3 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy3.setHorizontalStretch(0) sizePolicy3.setVerticalStretch(0) sizePolicy3.setHeightForWidth( self.btn_delete.sizePolicy().hasHeightForWidth()) self.btn_delete.setSizePolicy(sizePolicy3) self.btn_delete.setMaximumSize(QSize(40, 16777215)) font8 = QFont() font8.setFamily(u"Microsoft YaHei UI") font8.setPointSize(11) font8.setBold(True) font8.setWeight(75) self.btn_delete.setFont(font8) self.btn_delete.setStyleSheet(u"") self.horizontalLayout_4.addWidget(self.btn_delete) self.comboBox_2 = QComboBox(self.groupBox) self.comboBox_2.setObjectName(u"comboBox_2") palette5 = QPalette() brush3 = QBrush(QColor(0, 0, 195, 255)) brush3.setStyle(Qt.SolidPattern) palette5.setBrush(QPalette.Active, QPalette.WindowText, brush3) palette5.setBrush(QPalette.Active, QPalette.Text, brush3) palette5.setBrush(QPalette.Active, QPalette.ButtonText, brush3) brush4 = QBrush(QColor(0, 0, 195, 128)) brush4.setStyle(Qt.NoBrush) #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) palette5.setBrush(QPalette.Active, QPalette.PlaceholderText, brush4) #endif palette5.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) palette5.setBrush(QPalette.Inactive, QPalette.Text, brush3) palette5.setBrush(QPalette.Inactive, QPalette.ButtonText, brush3) brush5 = QBrush(QColor(0, 0, 195, 128)) brush5.setStyle(Qt.NoBrush) #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) palette5.setBrush(QPalette.Inactive, QPalette.PlaceholderText, brush5) #endif palette5.setBrush(QPalette.Disabled, QPalette.WindowText, brush3) palette5.setBrush(QPalette.Disabled, QPalette.Text, brush3) palette5.setBrush(QPalette.Disabled, QPalette.ButtonText, brush3) brush6 = QBrush(QColor(0, 0, 195, 128)) brush6.setStyle(Qt.NoBrush) #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) palette5.setBrush(QPalette.Disabled, QPalette.PlaceholderText, brush6) #endif self.comboBox_2.setPalette(palette5) font9 = QFont() font9.setFamily(u"Microsoft YaHei UI") font9.setPointSize(11) self.comboBox_2.setFont(font9) self.comboBox_2.setStyleSheet(u"color: rgb(0, 0, 195);") self.horizontalLayout_4.addWidget(self.comboBox_2) self.verticalLayout_7.addLayout(self.horizontalLayout_4) self.verticalLayout_3 = QVBoxLayout() self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.horizontalLayout_12 = QHBoxLayout() self.horizontalLayout_12.setObjectName(u"horizontalLayout_12") self.horizontalLayout_12.setContentsMargins(-1, 10, -1, 10) self.radioButton = QRadioButton(self.groupBox) self.radioButton.setObjectName(u"radioButton") sizePolicy3.setHeightForWidth( self.radioButton.sizePolicy().hasHeightForWidth()) self.radioButton.setSizePolicy(sizePolicy3) self.radioButton.setFont(font8) self.radioButton.setStyleSheet(u"color: rgb(255, 2, 2);") self.horizontalLayout_12.addWidget(self.radioButton) self.verticalLayout_3.addLayout(self.horizontalLayout_12) self.horizontalLayout_13 = QHBoxLayout() self.horizontalLayout_13.setObjectName(u"horizontalLayout_13") self.horizontalLayout_13.setContentsMargins(-1, 0, -1, 20) self.Change = QPushButton(self.groupBox) self.Change.setObjectName(u"Change") sizePolicy4 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy4.setHorizontalStretch(6) sizePolicy4.setVerticalStretch(0) sizePolicy4.setHeightForWidth( self.Change.sizePolicy().hasHeightForWidth()) self.Change.setSizePolicy(sizePolicy4) self.Change.setMinimumSize(QSize(60, 30)) self.Change.setMaximumSize(QSize(160, 80)) palette6 = QPalette() gradient = QLinearGradient(0, 0, 1, 1) gradient.setSpread(QConicalGradient.RepeatSpread) gradient.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient.setColorAt(0, QColor(255, 0, 0, 255)) gradient.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush7 = QBrush(gradient) palette6.setBrush(QPalette.Active, QPalette.Button, brush7) gradient1 = QLinearGradient(0, 0, 1, 1) gradient1.setSpread(QConicalGradient.RepeatSpread) gradient1.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient1.setColorAt(0, QColor(255, 0, 0, 255)) gradient1.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient1.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush8 = QBrush(gradient1) palette6.setBrush(QPalette.Active, QPalette.Base, brush8) gradient2 = QLinearGradient(0, 0, 1, 1) gradient2.setSpread(QConicalGradient.RepeatSpread) gradient2.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient2.setColorAt(0, QColor(255, 0, 0, 255)) gradient2.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient2.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush9 = QBrush(gradient2) palette6.setBrush(QPalette.Active, QPalette.Window, brush9) gradient3 = QLinearGradient(0, 0, 1, 1) gradient3.setSpread(QConicalGradient.RepeatSpread) gradient3.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient3.setColorAt(0, QColor(255, 0, 0, 255)) gradient3.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient3.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush10 = QBrush(gradient3) palette6.setBrush(QPalette.Inactive, QPalette.Button, brush10) gradient4 = QLinearGradient(0, 0, 1, 1) gradient4.setSpread(QConicalGradient.RepeatSpread) gradient4.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient4.setColorAt(0, QColor(255, 0, 0, 255)) gradient4.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient4.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush11 = QBrush(gradient4) palette6.setBrush(QPalette.Inactive, QPalette.Base, brush11) gradient5 = QLinearGradient(0, 0, 1, 1) gradient5.setSpread(QConicalGradient.RepeatSpread) gradient5.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient5.setColorAt(0, QColor(255, 0, 0, 255)) gradient5.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient5.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush12 = QBrush(gradient5) palette6.setBrush(QPalette.Inactive, QPalette.Window, brush12) gradient6 = QLinearGradient(0, 0, 1, 1) gradient6.setSpread(QConicalGradient.RepeatSpread) gradient6.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient6.setColorAt(0, QColor(255, 0, 0, 255)) gradient6.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient6.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush13 = QBrush(gradient6) palette6.setBrush(QPalette.Disabled, QPalette.Button, brush13) gradient7 = QLinearGradient(0, 0, 1, 1) gradient7.setSpread(QConicalGradient.RepeatSpread) gradient7.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient7.setColorAt(0, QColor(255, 0, 0, 255)) gradient7.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient7.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush14 = QBrush(gradient7) palette6.setBrush(QPalette.Disabled, QPalette.Base, brush14) gradient8 = QLinearGradient(0, 0, 1, 1) gradient8.setSpread(QConicalGradient.RepeatSpread) gradient8.setCoordinateMode(QConicalGradient.ObjectBoundingMode) gradient8.setColorAt(0, QColor(255, 0, 0, 255)) gradient8.setColorAt(0.492537, QColor(255, 170, 170, 255)) gradient8.setColorAt(0.955224, QColor(255, 0, 0, 255)) brush15 = QBrush(gradient8) palette6.setBrush(QPalette.Disabled, QPalette.Window, brush15) self.Change.setPalette(palette6) font10 = QFont() font10.setFamily(u"\u65b9\u6b63\u59da\u4f53") font10.setPointSize(12) self.Change.setFont(font10) self.Change.setStyleSheet( u"\n" "background-color: qlineargradient(spread:repeat, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 0, 0, 255), stop:0.492537 rgba(255, 170, 170, 255), stop:0.955224 rgba(255, 0, 0, 255));\n" "border-radius:10px\n" "") self.horizontalLayout_13.addWidget(self.Change) self.verticalLayout_3.addLayout(self.horizontalLayout_13) self.verticalLayout_7.addLayout(self.verticalLayout_3) self.verticalLayout_9.addWidget(self.groupBox) self.line_2 = QFrame(self.centralwidget) self.line_2.setObjectName(u"line_2") self.line_2.setFrameShape(QFrame.HLine) self.line_2.setFrameShadow(QFrame.Sunken) self.verticalLayout_9.addWidget(self.line_2) self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") self.groupBox_2 = QGroupBox(self.centralwidget) self.groupBox_2.setObjectName(u"groupBox_2") palette7 = QPalette() palette7.setBrush(QPalette.Active, QPalette.WindowText, brush) palette7.setBrush(QPalette.Inactive, QPalette.WindowText, brush) palette7.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.groupBox_2.setPalette(palette7) font11 = QFont() font11.setFamily(u"\u9ed1\u4f53") font11.setPointSize(9) font11.setBold(False) font11.setItalic(False) font11.setWeight(50) self.groupBox_2.setFont(font11) self.verticalLayout_4 = QVBoxLayout(self.groupBox_2) self.verticalLayout_4.setObjectName(u"verticalLayout_4") self.progressBar = QProgressBar(self.groupBox_2) self.progressBar.setObjectName(u"progressBar") self.progressBar.setFont(font11) self.progressBar.setValue(24) self.verticalLayout_4.addWidget(self.progressBar) self.textBrowser = QTextBrowser(self.groupBox_2) self.textBrowser.setObjectName(u"textBrowser") self.textBrowser.setStyleSheet(u"\n" "background-color: rgb(231, 231, 231);") self.verticalLayout_4.addWidget(self.textBrowser) self.horizontalLayout_5.addWidget(self.groupBox_2) self.line = QFrame(self.centralwidget) self.line.setObjectName(u"line") self.line.setFrameShape(QFrame.VLine) self.line.setFrameShadow(QFrame.Sunken) self.horizontalLayout_5.addWidget(self.line) self.calendarWidget = QCalendarWidget(self.centralwidget) self.calendarWidget.setObjectName(u"calendarWidget") font12 = QFont() font12.setFamily(u"\u65b9\u6b63\u59da\u4f53") font12.setPointSize(9) font12.setBold(False) font12.setItalic(False) font12.setWeight(50) self.calendarWidget.setFont(font12) self.calendarWidget.setStyleSheet(u"") self.horizontalLayout_5.addWidget(self.calendarWidget) self.verticalLayout_9.addLayout(self.horizontalLayout_5) self.formLayout.setLayout(0, QFormLayout.FieldRole, self.verticalLayout_9) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 1113, 26)) self.menu = QMenu(self.menubar) self.menu.setObjectName(u"menu") self.menu_2 = QMenu(self.menubar) self.menu_2.setObjectName(u"menu_2") MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") MainWindow.setStatusBar(self.statusbar) self.menubar.addAction(self.menu.menuAction()) self.menubar.addAction(self.menu_2.menuAction()) self.menu.addAction(self.actionYea) self.menu.addSeparator() self.menu.addAction(self.action132) self.menu.addSeparator() self.menu_2.addAction(self.actiond) self.menu_2.addAction(self.actionda) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow)
class GradientWidget(QLabel): def __init__(self, parent=None): super().__init__(parent) self.gradient = QLinearGradient(0, 0, 0, self.height()) self.labels = {} self.margin = 10 self._barThickness = 20 self._labelMargin = 2 self._maxLabelWidth = None self._maxLabelHeight = None self._orientation = 'Vertical' self.setStyleSheet("background-color: rgba(255,0,255,0)") self.setAttribute(Qt.WA_NoSystemBackground) def paintEvent(self, event): painter = QPainter(self) painter.setRenderHint(QPainter.HighQualityAntialiasing) # determine max width/height of all labels if self._maxLabelWidth is None or self._maxLabelHeight is None: self._maxLabelWidth = 0 self._maxLabelHeight = 0 for k in self.labels.values(): b = painter.boundingRect( QRectF(0, 0, 0, 0), int(Qt.AlignLeft) | int(Qt.AlignVCenter), str(k)) self._maxLabelWidth = max(self._maxLabelWidth, b.width()) self._maxLabelHeight = max(self._maxLabelHeight, b.height()) barRect = self.rect() if self._orientation == 'Vertical': # translate Y axis matrix = QMatrix() matrix.translate(0, self.height() - self.margin) matrix.scale(1, -1) painter.setMatrix(matrix) self.gradient.setFinalStop(0, self.height() - self.margin) barRect.setWidth(self._barThickness) barRect.setHeight(barRect.height() - 2 * self.margin) painter.fillRect(barRect, self.gradient) # restore normal coordinates painter.scale(1, -1) self.setMinimumWidth(self._barThickness + self._labelMargin + self._maxLabelWidth) elif self._orientation == 'Horizontal': self.margin = self._maxLabelWidth / 2 + self._labelMargin barRect.setHeight(self._barThickness) barRect.setLeft( self.margin ) # reduces width by margin (as opposed to shifting) # Reduce the width by another margin to pull off the right hand side barRect.setWidth(barRect.width() - self.margin) painter.fillRect(barRect, self.gradient) line_step = barRect.width() / 20 pos = barRect.left() while pos <= barRect.right(): painter.drawLine(pos, 2 * (barRect.bottom() - barRect.top()) / 3, pos, barRect.bottom()) pos += line_step self.setMinimumHeight(self._maxLabelHeight + self._barThickness + self._labelMargin) for pos, label in self.labels.items(): # Figure coordinate position. 1=height-margin for vertical, or width-margin for horizontal if self._orientation == 'Vertical': lpos = -1 * ((self.height() - (2 * self.margin)) * pos) painter.drawText(self._barThickness + self._labelMargin, (.5 * self._maxLabelHeight) + lpos, label) elif self._orientation == 'Horizontal': text_rect = painter.boundingRect(QRectF(0, 0, 0, 0), int(Qt.AlignLeft), str(label)) lpos = ((self.width() - (2 * self.margin)) * pos ) # Center position lleft = lpos - text_rect.width() / 2 painter.drawText(lleft + self.margin, self.height() - 1, label) def setGradient(self, g): self.gradient = g self.gradient.setCoordinateMode(QGradient.ObjectMode) # Make sure we go end-to-end self.gradient.setFinalStop(1, 0) self.gradient.setStart(0, 0) self.repaint() def setLabels(self, l): self.labels = l # recalculate self.labelWidth on next paint self._maxLabelWidth = None self._maxLabelHeight = None self.repaint() def setOrientation(self, orientation): if not orientation in ('Horizontal', 'Vertical'): raise TypeError( "Orientation must be one of 'Horizontal' or 'Vertical'") self._orientation = orientation self.repaint()