def apply_settings():
        f = Settings.get_value('family', 'Serif')
        size = Settings.get_value('size', 11)

        f = QFont(f, size, QFont.PreferAntialias)
        f.setStyleStrategy(QFont.PreferQuality)

        theme = Settings.get_value('theme', 'Light')
        if theme == 'Light':
            p = QPalette()
            QApplication.setPalette(p)
        else:
            palette = QPalette()
            palette.setColor(QPalette.Window, QColor(53, 53, 53))
            palette.setColor(QPalette.WindowText, Qt.white)
            palette.setColor(QPalette.Base, QColor(25, 25, 25))
            palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
            palette.setColor(QPalette.ToolTipBase, Qt.white)
            palette.setColor(QPalette.ToolTipText, Qt.white)
            palette.setColor(QPalette.Text, Qt.white)
            palette.setColor(QPalette.Button, QColor(53, 53, 53))
            palette.setColor(QPalette.ButtonText, Qt.white)
            palette.setColor(QPalette.BrightText, Qt.red)
            palette.setColor(QPalette.Link, QColor(42, 130, 218))
            palette.setColor(QPalette.Highlight, QColor(42, 130, 218))
            palette.setColor(QPalette.HighlightedText, Qt.black)
            QApplication.setPalette(palette)
 def _font_changed(self):
     f = self.family.currentText()
     s = self.size.value()
     self.settings.setValue('family', f)
     self.settings.setValue('size', s)
     f = QFont(f, s, QFont.PreferAntialias)
     f.setStyleStrategy(QFont.PreferQuality)
     QApplication.setFont(f)
    def setupUi(self, Form):
        if not Form.objectName():
            Form.setObjectName(u"Form")
        Form.resize(400, 300)
        self.gridLayout = QGridLayout(Form)
        self.gridLayout.setObjectName(u"gridLayout")
        self.frame = QFrame(Form)
        self.frame.setObjectName(u"frame")
        self.frame.setFrameShape(QFrame.StyledPanel)
        self.frame.setFrameShadow(QFrame.Raised)
        self.verticalLayout = QVBoxLayout(self.frame)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.label = QLabel(self.frame)
        self.label.setObjectName(u"label")

        self.horizontalLayout.addWidget(self.label)

        self.nameEdit = QLineEdit(self.frame)
        self.nameEdit.setObjectName(u"nameEdit")

        self.horizontalLayout.addWidget(self.nameEdit)

        self.verticalLayout.addLayout(self.horizontalLayout)

        self.horizontalLayout_2 = QHBoxLayout()
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.label_2 = QLabel(self.frame)
        self.label_2.setObjectName(u"label_2")

        self.horizontalLayout_2.addWidget(self.label_2)

        self.checkBox = QCheckBox(self.frame)
        self.checkBox.setObjectName(u"checkBox")

        self.horizontalLayout_2.addWidget(self.checkBox)

        self.verticalLayout.addLayout(self.horizontalLayout_2)

        self.finishButton = QPushButton(self.frame)
        self.finishButton.setObjectName(u"finishButton")
        font = QFont()
        font.setStyleStrategy(QFont.PreferDefault)
        self.finishButton.setFont(font)

        self.verticalLayout.addWidget(self.finishButton)

        self.gridLayout.addWidget(self.frame, 0, 0, 1, 1)

        self.retranslateUi(Form)

        QMetaObject.connectSlotsByName(Form)
Exemple #4
0
    def _set_font(self):
        mono_font = QFont("monospace")
        mono_font.setStyleStrategy(QFont.ForceIntegerMetrics)
        mono_font.setFixedPitch(True)
        mono_font.setPointSize(9)

        font_metrics = QFontMetrics(mono_font)

        self.font_width = font_metrics.width("M")

        self.setFont(mono_font)
        self.layout.setFont(mono_font)
        self.viewport().setFont(mono_font)

        self.line_height = self.fontMetrics().height()

        self.viewport().update()
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(309, 479)
        font = QFont()
        font.setStyleStrategy(QFont.PreferDefault)
        MainWindow.setFont(font)
        MainWindow.setCursor(QCursor(Qt.ArrowCursor))
        MainWindow.setDocumentMode(False)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(-1, 9, -1, -1)
        self.main_vertical = QVBoxLayout()
        self.main_vertical.setObjectName(u"main_vertical")
        self.mode_label = QLabel(self.centralwidget)
        self.mode_label.setObjectName(u"mode_label")
        font1 = QFont()
        font1.setPointSize(15)
        font1.setBold(True)
        font1.setWeight(75)
        self.mode_label.setFont(font1)

        self.main_vertical.addWidget(self.mode_label)

        self.mode_layout = QHBoxLayout()
        self.mode_layout.setObjectName(u"mode_layout")
        self.nothing_radio = QRadioButton(self.centralwidget)
        self.nothing_radio.setObjectName(u"nothing_radio")
        self.nothing_radio.setChecked(True)

        self.mode_layout.addWidget(self.nothing_radio)

        self.fm_radio = QRadioButton(self.centralwidget)
        self.fm_radio.setObjectName(u"fm_radio")

        self.mode_layout.addWidget(self.fm_radio)

        self.em_radio = QRadioButton(self.centralwidget)
        self.em_radio.setObjectName(u"em_radio")

        self.mode_layout.addWidget(self.em_radio)

        self.main_vertical.addLayout(self.mode_layout)

        self.od_check = QCheckBox(self.centralwidget)
        self.od_check.setObjectName(u"od_check")

        self.main_vertical.addWidget(self.od_check)

        self.option_label = QLabel(self.centralwidget)
        self.option_label.setObjectName(u"option_label")
        self.option_label.setFont(font1)

        self.main_vertical.addWidget(self.option_label)

        self.lo_check = QCheckBox(self.centralwidget)
        self.lo_check.setObjectName(u"lo_check")
        self.lo_check.setChecked(True)

        self.main_vertical.addWidget(self.lo_check)

        self.rtmp_check = QCheckBox(self.centralwidget)
        self.rtmp_check.setObjectName(u"rtmp_check")

        self.main_vertical.addWidget(self.rtmp_check)

        self.dm_check = QCheckBox(self.centralwidget)
        self.dm_check.setObjectName(u"dm_check")

        self.main_vertical.addWidget(self.dm_check)

        self.roi_check = QCheckBox(self.centralwidget)
        self.roi_check.setObjectName(u"roi_check")

        self.main_vertical.addWidget(self.roi_check)

        self.label = QLabel(self.centralwidget)
        self.label.setObjectName(u"label")
        font2 = QFont()
        font2.setPointSize(13)
        font2.setBold(True)
        font2.setWeight(75)
        self.label.setFont(font2)

        self.main_vertical.addWidget(self.label)

        self.masking_layout = QHBoxLayout()
        self.masking_layout.setObjectName(u"masking_layout")
        self.knife_check = QCheckBox(self.centralwidget)
        self.knife_check.setObjectName(u"knife_check")
        self.knife_check.setEnabled(False)

        self.masking_layout.addWidget(self.knife_check)

        self.scissor_check = QCheckBox(self.centralwidget)
        self.scissor_check.setObjectName(u"scissor_check")
        self.scissor_check.setEnabled(False)

        self.masking_layout.addWidget(self.scissor_check)

        self.main_vertical.addLayout(self.masking_layout)

        self.auth_label = QLabel(self.centralwidget)
        self.auth_label.setObjectName(u"auth_label")
        self.auth_label.setEnabled(True)
        font3 = QFont()
        font3.setPointSize(15)
        self.auth_label.setFont(font3)

        self.main_vertical.addWidget(self.auth_label)

        self.auth_input = QLineEdit(self.centralwidget)
        self.auth_input.setObjectName(u"auth_input")
        self.auth_input.setEnabled(False)
        self.auth_input.setClearButtonEnabled(False)

        self.main_vertical.addWidget(self.auth_input)

        self.start_stop_button = QPushButton(self.centralwidget)
        self.start_stop_button.setObjectName(u"start_stop_button")
        font4 = QFont()
        font4.setPointSize(20)
        self.start_stop_button.setFont(font4)

        self.main_vertical.addWidget(self.start_stop_button)

        self.exit_button = QPushButton(self.centralwidget)
        self.exit_button.setObjectName(u"exit_button")
        self.exit_button.setFont(font4)

        self.main_vertical.addWidget(self.exit_button)

        self.verticalLayout.addLayout(self.main_vertical)

        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)
Exemple #6
0
    QObject,
    QUrl,
    Slot,
    Qt,
)


class Main(QObject):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.engine = QQmlApplicationEngine(self)
        self.engine.rootContext().setContextProperty("backend", self)
        self.engine.load(QUrl.fromLocalFile('app.qml'))

    @Slot(str)
    def create(self, string):
        print(string)


QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
app = QApplication.instance()
if app is None:
    app = QApplication()
font = QFont()
font.setStyleStrategy(QFont.PreferQuality)
font.setFamily('DejaVu')
# font.setPointSize(10)
app.setFont(font)
main = Main()
app.exec_()
Exemple #7
0
    def setupUi(self, Form):
        if not Form.objectName():
            Form.setObjectName(u"Form")
        Form.setWindowModality(Qt.ApplicationModal)
        Form.resize(400, 550)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
        Form.setSizePolicy(sizePolicy)
        Form.setMinimumSize(QSize(400, 550))
        Form.setMaximumSize(QSize(400, 550))
        font = QFont()
        font.setStyleStrategy(QFont.PreferDefault)
        Form.setFont(font)
        Form.setAutoFillBackground(False)
        self.verticalLayout_2 = QVBoxLayout(Form)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.widget_8 = QWidget(Form)
        self.widget_8.setObjectName(u"widget_8")
        sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(
            self.widget_8.sizePolicy().hasHeightForWidth())
        self.widget_8.setSizePolicy(sizePolicy1)
        self.widget_8.setMinimumSize(QSize(400, 150))
        self.widget_8.setMaximumSize(QSize(400, 150))
        self.horizontalLayout = QHBoxLayout(self.widget_8)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.widget = QWidget(self.widget_8)
        self.widget.setObjectName(u"widget")
        sizePolicy1.setHeightForWidth(
            self.widget.sizePolicy().hasHeightForWidth())
        self.widget.setSizePolicy(sizePolicy1)
        self.widget.setMinimumSize(QSize(200, 150))
        self.widget.setMaximumSize(QSize(200, 150))
        palette = QPalette()
        brush = QBrush(QColor(255, 255, 255, 255))
        brush.setStyle(Qt.SolidPattern)
        palette.setBrush(QPalette.Active, QPalette.Base, brush)
        palette.setBrush(QPalette.Active, QPalette.Window, brush)
        palette.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette.setBrush(QPalette.Inactive, QPalette.Window, brush)
        palette.setBrush(QPalette.Disabled, QPalette.Base, brush)
        palette.setBrush(QPalette.Disabled, QPalette.Window, brush)
        self.widget.setPalette(palette)
        self.widget.setAutoFillBackground(True)
        self.horizontalLayout_10 = QHBoxLayout(self.widget)
        self.horizontalLayout_10.setSpacing(0)
        self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
        self.horizontalLayout_10.setContentsMargins(0, 0, 0, 0)
        self.label = QLabel(self.widget)
        self.label.setObjectName(u"label")
        sizePolicy1.setHeightForWidth(
            self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy1)
        self.label.setMinimumSize(QSize(150, 150))
        self.label.setMaximumSize(QSize(150, 150))
        self.label.setPixmap(QPixmap(u":/symbols/Spine_symbol.png"))
        self.label.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_10.addWidget(self.label)

        self.horizontalLayout.addWidget(self.widget)

        self.widget_9 = QWidget(self.widget_8)
        self.widget_9.setObjectName(u"widget_9")
        palette1 = QPalette()
        palette1.setBrush(QPalette.Active, QPalette.Base, brush)
        brush1 = QBrush(QColor(0, 74, 194, 255))
        brush1.setStyle(Qt.SolidPattern)
        palette1.setBrush(QPalette.Active, QPalette.Window, brush1)
        palette1.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette1.setBrush(QPalette.Inactive, QPalette.Window, brush1)
        palette1.setBrush(QPalette.Disabled, QPalette.Base, brush1)
        palette1.setBrush(QPalette.Disabled, QPalette.Window, brush1)
        self.widget_9.setPalette(palette1)
        self.widget_9.setAutoFillBackground(True)
        self.verticalLayout = QVBoxLayout(self.widget_9)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.label_spine_toolbox = QLabel(self.widget_9)
        self.label_spine_toolbox.setObjectName(u"label_spine_toolbox")
        sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy2.setHorizontalStretch(0)
        sizePolicy2.setVerticalStretch(0)
        sizePolicy2.setHeightForWidth(
            self.label_spine_toolbox.sizePolicy().hasHeightForWidth())
        self.label_spine_toolbox.setSizePolicy(sizePolicy2)
        self.label_spine_toolbox.setMinimumSize(QSize(0, 0))
        self.label_spine_toolbox.setMaximumSize(QSize(16777215, 16777215))
        self.label_spine_toolbox.setBaseSize(QSize(0, 0))
        font1 = QFont()
        font1.setFamily(u"Arial Black")
        font1.setPointSize(6)
        font1.setBold(False)
        font1.setWeight(50)
        self.label_spine_toolbox.setFont(font1)
        self.label_spine_toolbox.setStyleSheet(u"color: rgb(255, 255, 255);")
        self.label_spine_toolbox.setScaledContents(True)
        self.label_spine_toolbox.setAlignment(Qt.AlignCenter)

        self.verticalLayout.addWidget(self.label_spine_toolbox)

        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum,
                                          QSizePolicy.Expanding)

        self.verticalLayout.addItem(self.verticalSpacer)

        self.label_spinedb_api = QLabel(self.widget_9)
        self.label_spinedb_api.setObjectName(u"label_spinedb_api")
        sizePolicy2.setHeightForWidth(
            self.label_spinedb_api.sizePolicy().hasHeightForWidth())
        self.label_spinedb_api.setSizePolicy(sizePolicy2)
        font2 = QFont()
        font2.setFamily(u"Arial Black")
        font2.setPointSize(6)
        self.label_spinedb_api.setFont(font2)
        self.label_spinedb_api.setStyleSheet(u"color: rgb(255, 255, 255);")
        self.label_spinedb_api.setAlignment(Qt.AlignCenter)

        self.verticalLayout.addWidget(self.label_spinedb_api)

        self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum,
                                            QSizePolicy.Expanding)

        self.verticalLayout.addItem(self.verticalSpacer_2)

        self.label_spine_engine = QLabel(self.widget_9)
        self.label_spine_engine.setObjectName(u"label_spine_engine")
        sizePolicy2.setHeightForWidth(
            self.label_spine_engine.sizePolicy().hasHeightForWidth())
        self.label_spine_engine.setSizePolicy(sizePolicy2)
        self.label_spine_engine.setFont(font2)
        self.label_spine_engine.setStyleSheet(u"color: rgb(255, 255, 255);")
        self.label_spine_engine.setAlignment(Qt.AlignCenter)

        self.verticalLayout.addWidget(self.label_spine_engine)

        self.verticalSpacer_3 = QSpacerItem(20, 40, QSizePolicy.Minimum,
                                            QSizePolicy.Expanding)

        self.verticalLayout.addItem(self.verticalSpacer_3)

        self.horizontalLayout.addWidget(self.widget_9)

        self.verticalLayout_2.addWidget(self.widget_8)

        self.widget_3 = QWidget(Form)
        self.widget_3.setObjectName(u"widget_3")
        sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
        sizePolicy3.setHorizontalStretch(0)
        sizePolicy3.setVerticalStretch(0)
        sizePolicy3.setHeightForWidth(
            self.widget_3.sizePolicy().hasHeightForWidth())
        self.widget_3.setSizePolicy(sizePolicy3)
        self.widget_3.setMinimumSize(QSize(400, 60))
        self.widget_3.setMaximumSize(QSize(400, 1000))
        palette2 = QPalette()
        palette2.setBrush(QPalette.Active, QPalette.Base, brush)
        palette2.setBrush(QPalette.Active, QPalette.Window, brush)
        palette2.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette2.setBrush(QPalette.Inactive, QPalette.Window, brush)
        palette2.setBrush(QPalette.Disabled, QPalette.Base, brush)
        palette2.setBrush(QPalette.Disabled, QPalette.Window, brush)
        self.widget_3.setPalette(palette2)
        self.widget_3.setAutoFillBackground(True)
        self.horizontalLayout_4 = QHBoxLayout(self.widget_3)
        self.horizontalLayout_4.setSpacing(0)
        self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
        self.horizontalLayout_4.setContentsMargins(6, 6, 6, 6)
        self.textBrowser = QTextBrowser(self.widget_3)
        self.textBrowser.setObjectName(u"textBrowser")
        self.textBrowser.setMinimumSize(QSize(0, 0))
        self.textBrowser.setMaximumSize(QSize(400, 1000))
        font3 = QFont()
        font3.setPointSize(7)
        self.textBrowser.setFont(font3)
        self.textBrowser.setFrameShape(QFrame.StyledPanel)
        self.textBrowser.setFrameShadow(QFrame.Sunken)
        self.textBrowser.setLineWidth(1)
        self.textBrowser.setTextInteractionFlags(Qt.LinksAccessibleByMouse
                                                 | Qt.TextSelectableByMouse)
        self.textBrowser.setOpenExternalLinks(True)

        self.horizontalLayout_4.addWidget(self.textBrowser)

        self.verticalLayout_2.addWidget(self.widget_3)

        self.widget_2 = QWidget(Form)
        self.widget_2.setObjectName(u"widget_2")
        sizePolicy1.setHeightForWidth(
            self.widget_2.sizePolicy().hasHeightForWidth())
        self.widget_2.setSizePolicy(sizePolicy1)
        self.widget_2.setMinimumSize(QSize(400, 255))
        self.widget_2.setMaximumSize(QSize(400, 255))
        palette3 = QPalette()
        palette3.setBrush(QPalette.Active, QPalette.Base, brush)
        brush2 = QBrush(QColor(118, 168, 246, 255))
        brush2.setStyle(Qt.SolidPattern)
        palette3.setBrush(QPalette.Active, QPalette.Window, brush2)
        palette3.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette3.setBrush(QPalette.Inactive, QPalette.Window, brush2)
        palette3.setBrush(QPalette.Disabled, QPalette.Base, brush2)
        palette3.setBrush(QPalette.Disabled, QPalette.Window, brush2)
        self.widget_2.setPalette(palette3)
        self.widget_2.setAutoFillBackground(True)
        self.verticalLayout_3 = QVBoxLayout(self.widget_2)
        self.verticalLayout_3.setSpacing(0)
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.widget_5 = QWidget(self.widget_2)
        self.widget_5.setObjectName(u"widget_5")
        sizePolicy2.setHeightForWidth(
            self.widget_5.sizePolicy().hasHeightForWidth())
        self.widget_5.setSizePolicy(sizePolicy2)
        self.widget_5.setMinimumSize(QSize(0, 255))
        self.widget_5.setMaximumSize(QSize(16777215, 255))
        palette4 = QPalette()
        palette4.setBrush(QPalette.Active, QPalette.Base, brush)
        brush3 = QBrush(QColor(153, 204, 51, 255))
        brush3.setStyle(Qt.SolidPattern)
        palette4.setBrush(QPalette.Active, QPalette.Window, brush3)
        palette4.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette4.setBrush(QPalette.Inactive, QPalette.Window, brush3)
        palette4.setBrush(QPalette.Disabled, QPalette.Base, brush3)
        palette4.setBrush(QPalette.Disabled, QPalette.Window, brush3)
        self.widget_5.setPalette(palette4)
        self.widget_5.setAutoFillBackground(True)
        self.horizontalLayout_5 = QHBoxLayout(self.widget_5)
        self.horizontalLayout_5.setSpacing(0)
        self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
        self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.widget_6 = QWidget(self.widget_5)
        self.widget_6.setObjectName(u"widget_6")
        palette5 = QPalette()
        palette5.setBrush(QPalette.Active, QPalette.Base, brush)
        palette5.setBrush(QPalette.Active, QPalette.Window, brush)
        palette5.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette5.setBrush(QPalette.Inactive, QPalette.Window, brush)
        palette5.setBrush(QPalette.Disabled, QPalette.Base, brush)
        palette5.setBrush(QPalette.Disabled, QPalette.Window, brush)
        self.widget_6.setPalette(palette5)
        self.widget_6.setAutoFillBackground(True)
        self.verticalLayout_6 = QVBoxLayout(self.widget_6)
        self.verticalLayout_6.setSpacing(0)
        self.verticalLayout_6.setObjectName(u"verticalLayout_6")
        self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.widget_4 = QWidget(self.widget_6)
        self.widget_4.setObjectName(u"widget_4")
        sizePolicy1.setHeightForWidth(
            self.widget_4.sizePolicy().hasHeightForWidth())
        self.widget_4.setSizePolicy(sizePolicy1)
        self.widget_4.setMinimumSize(QSize(200, 85))
        self.widget_4.setMaximumSize(QSize(200, 85))
        self.horizontalLayout_2 = QHBoxLayout(self.widget_4)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.label_5 = QLabel(self.widget_4)
        self.label_5.setObjectName(u"label_5")
        self.label_5.setMaximumSize(QSize(140, 39))
        self.label_5.setPixmap(QPixmap(u":/partner_logos/VTT_logo_2018.png"))
        self.label_5.setScaledContents(True)
        self.label_5.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_2.addWidget(self.label_5)

        self.verticalLayout_6.addWidget(self.widget_4)

        self.widget_10 = QWidget(self.widget_6)
        self.widget_10.setObjectName(u"widget_10")
        sizePolicy1.setHeightForWidth(
            self.widget_10.sizePolicy().hasHeightForWidth())
        self.widget_10.setSizePolicy(sizePolicy1)
        self.widget_10.setMinimumSize(QSize(200, 85))
        self.widget_10.setMaximumSize(QSize(200, 16777215))
        self.horizontalLayout_3 = QHBoxLayout(self.widget_10)
        self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
        self.label_7 = QLabel(self.widget_10)
        self.label_7.setObjectName(u"label_7")
        sizePolicy1.setHeightForWidth(
            self.label_7.sizePolicy().hasHeightForWidth())
        self.label_7.setSizePolicy(sizePolicy1)
        self.label_7.setMaximumSize(QSize(67, 67))
        self.label_7.setPixmap(QPixmap(u":/partner_logos/UCD_Dublin_logo.png"))
        self.label_7.setScaledContents(True)
        self.label_7.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_3.addWidget(self.label_7)

        self.verticalLayout_6.addWidget(self.widget_10)

        self.widget_11 = QWidget(self.widget_6)
        self.widget_11.setObjectName(u"widget_11")
        sizePolicy1.setHeightForWidth(
            self.widget_11.sizePolicy().hasHeightForWidth())
        self.widget_11.setSizePolicy(sizePolicy1)
        self.widget_11.setMinimumSize(QSize(200, 85))
        self.widget_11.setMaximumSize(QSize(200, 85))
        self.horizontalLayout_6 = QHBoxLayout(self.widget_11)
        self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
        self.label_6 = QLabel(self.widget_11)
        self.label_6.setObjectName(u"label_6")
        self.label_6.setMaximumSize(QSize(68, 68))
        self.label_6.setPixmap(QPixmap(u":/partner_logos/KTH_logo.png"))
        self.label_6.setScaledContents(True)
        self.label_6.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_6.addWidget(self.label_6)

        self.verticalLayout_6.addWidget(self.widget_11)

        self.horizontalLayout_5.addWidget(self.widget_6)

        self.widget_7 = QWidget(self.widget_5)
        self.widget_7.setObjectName(u"widget_7")
        palette6 = QPalette()
        palette6.setBrush(QPalette.Active, QPalette.Base, brush)
        palette6.setBrush(QPalette.Active, QPalette.Window, brush)
        palette6.setBrush(QPalette.Inactive, QPalette.Base, brush)
        palette6.setBrush(QPalette.Inactive, QPalette.Window, brush)
        palette6.setBrush(QPalette.Disabled, QPalette.Base, brush)
        palette6.setBrush(QPalette.Disabled, QPalette.Window, brush)
        self.widget_7.setPalette(palette6)
        self.widget_7.setAutoFillBackground(True)
        self.verticalLayout_5 = QVBoxLayout(self.widget_7)
        self.verticalLayout_5.setSpacing(0)
        self.verticalLayout_5.setObjectName(u"verticalLayout_5")
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.widget_12 = QWidget(self.widget_7)
        self.widget_12.setObjectName(u"widget_12")
        sizePolicy1.setHeightForWidth(
            self.widget_12.sizePolicy().hasHeightForWidth())
        self.widget_12.setSizePolicy(sizePolicy1)
        self.widget_12.setMinimumSize(QSize(200, 85))
        self.widget_12.setMaximumSize(QSize(200, 85))
        self.horizontalLayout_7 = QHBoxLayout(self.widget_12)
        self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
        self.label_4 = QLabel(self.widget_12)
        self.label_4.setObjectName(u"label_4")
        sizePolicy1.setHeightForWidth(
            self.label_4.sizePolicy().hasHeightForWidth())
        self.label_4.setSizePolicy(sizePolicy1)
        self.label_4.setMaximumSize(QSize(166, 34))
        self.label_4.setPixmap(
            QPixmap(u":/partner_logos/Energy_Reform_logo.png"))
        self.label_4.setScaledContents(True)
        self.label_4.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_7.addWidget(self.label_4)

        self.verticalLayout_5.addWidget(self.widget_12)

        self.widget_13 = QWidget(self.widget_7)
        self.widget_13.setObjectName(u"widget_13")
        sizePolicy1.setHeightForWidth(
            self.widget_13.sizePolicy().hasHeightForWidth())
        self.widget_13.setSizePolicy(sizePolicy1)
        self.widget_13.setMinimumSize(QSize(200, 85))
        self.widget_13.setMaximumSize(QSize(200, 85))
        self.horizontalLayout_8 = QHBoxLayout(self.widget_13)
        self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
        self.label_2 = QLabel(self.widget_13)
        self.label_2.setObjectName(u"label_2")
        sizePolicy1.setHeightForWidth(
            self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy1)
        self.label_2.setMaximumSize(QSize(90, 32))
        self.label_2.setPixmap(QPixmap(u":/partner_logos/KU_Leuven_logo.png"))
        self.label_2.setScaledContents(True)
        self.label_2.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_8.addWidget(self.label_2)

        self.verticalLayout_5.addWidget(self.widget_13)

        self.widget_14 = QWidget(self.widget_7)
        self.widget_14.setObjectName(u"widget_14")
        sizePolicy4 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sizePolicy4.setHorizontalStretch(0)
        sizePolicy4.setVerticalStretch(0)
        sizePolicy4.setHeightForWidth(
            self.widget_14.sizePolicy().hasHeightForWidth())
        self.widget_14.setSizePolicy(sizePolicy4)
        self.widget_14.setMinimumSize(QSize(0, 85))
        self.widget_14.setMaximumSize(QSize(16777215, 85))
        self.horizontalLayout_9 = QHBoxLayout(self.widget_14)
        self.horizontalLayout_9.setSpacing(0)
        self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
        self.horizontalLayout_9.setContentsMargins(0, 0, 0, 0)
        self.label_3 = QLabel(self.widget_14)
        self.label_3.setObjectName(u"label_3")
        sizePolicy1.setHeightForWidth(
            self.label_3.sizePolicy().hasHeightForWidth())
        self.label_3.setSizePolicy(sizePolicy1)
        self.label_3.setMinimumSize(QSize(200, 85))
        self.label_3.setMaximumSize(QSize(200, 85))
        font4 = QFont()
        font4.setFamily(u"Arial Black")
        font4.setPointSize(8)
        font4.setBold(True)
        font4.setWeight(75)
        self.label_3.setFont(font4)
        self.label_3.setStyleSheet(u"background-color: rgb(0, 74, 194);")
        self.label_3.setTextFormat(Qt.RichText)
        self.label_3.setAlignment(Qt.AlignCenter)
        self.label_3.setMargin(0)
        self.label_3.setOpenExternalLinks(True)

        self.horizontalLayout_9.addWidget(self.label_3)

        self.verticalLayout_5.addWidget(self.widget_14)

        self.horizontalLayout_5.addWidget(self.widget_7)

        self.verticalLayout_3.addWidget(self.widget_5)

        self.verticalLayout_2.addWidget(self.widget_2)

        self.retranslateUi(Form)

        QMetaObject.connectSlotsByName(Form)
Exemple #8
0
    def paint(self,
              painter: QPainter,
              option: QStyleOptionGraphicsItem,
              widget: QWidget = ...):
        fillColor = self.color.darker(
            150) if option.state & QStyle.State_Selected else self.color
        if option.state & QStyle.State_MouseOver:
            fillColor = fillColor.lighter(125)

        lod = option.levelOfDetailFromTransform(painter.worldTransform())

        if lod < 0.2:
            if lod < 0.125:
                painter.fillRect(QRectF(0, 0, 110, 70), fillColor)
                return

            b = painter.brush()
            painter.setBrush(fillColor)
            painter.drawRect(13, 13, 97, 57)
            painter.setBrush(b)
            return

        oldPen = painter.pen()
        pen = oldPen
        width = 0
        if option.state & QStyle.State_Selected:
            width += 2
        pen.setWidth(width)
        b = painter.brush()
        painter.setBrush(
            QBrush(
                fillColor.darker(120 if option.state
                                 & QStyle.State_Sunken else 100)))

        painter.drawRect(QRect(14, 14, 79, 39))
        painter.setBrush(b)

        if lod >= 1:
            painter.setPen(QPen(Qt.gray, 1))
            painter.drawLine(15, 54, 94, 54)
            painter.drawLine(94, 53, 94, 15)
            painter.setPen(QPen(Qt.black, 0))

        # Draw text
        if lod >= 2:
            font = QFont("Times", 10)
            font.setStyleStrategy(QFont.ForceOutline)
            painter.setFont(font)
            painter.save()
            painter.scale(0.1, 0.1)
            painter.drawText(
                170, 180,
                f"Model: VSC-2000 (Very Small Chip) at {self.x}x{self.y}")
            painter.drawText(170, 200,
                             "Serial number: DLWR-WEER-123L-ZZ33-SDSJ")
            painter.drawText(170, 220, "Manufacturer: Chip Manufacturer")
            painter.restore()

        # Drawlines
        lines: List[QLineF] = []
        if lod >= 0.5:
            s = 1 if lod > 0.5 else 2
            for i in range(0, 11, s):
                lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5))
                lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62))

            for i in range(0, 7, s):
                lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5))
                lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5))

        if lod >= 0.4:
            lines.extend([
                QLineF(25, 35, 35, 35),
                QLineF(35, 30, 35, 40),
                QLineF(35, 30, 45, 35),
                QLineF(35, 40, 45, 35),
                QLineF(45, 30, 45, 40),
                QLineF(45, 35, 55, 35)
            ])
        painter.drawLines(lines[:])

        ## Draw red ink
        if len(self.stuff) > 1:
            p = painter.pen()
            painter.setPen(
                QPen(Qt.red, 1, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin))
            painter.setBrush(Qt.NoBrush)
            path = QPainterPath()
            path.moveTo(self.stuff[0])
            for i in range(1, len(self.stuff)):
                path.lineTo(self.stuff[i])
            painter.drawPath(path)
            painter.setPen(p)
    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)
Exemple #10
0
def main(gamePath: Optional[str] = None,
         configPath: Optional[str] = None,
         startupMode: StartupMode = StartupMode.Main) -> NoReturn:

    from w3modmanager.util.util import getRuntimePath
    from w3modmanager.core.model import Model
    from w3modmanager.core.errors import OtherInstanceError, InvalidGamePath, InvalidConfigPath
    from w3modmanager.ui.graphical.mainwindow import MainWindow
    from w3modmanager.domain.system.permissions import \
        getWritePermissions, setWritePermissions

    from PySide2.QtCore import Qt, QSettings
    from PySide2.QtWidgets import QApplication, QMessageBox
    from PySide2.QtGui import QIcon, QPalette, QFont

    from asyncqt import QEventLoop  # noqa

    QApplication.setOrganizationName(w3modmanager.ORG_NAME)
    QApplication.setOrganizationDomain(w3modmanager.ORG_URL)
    QApplication.setApplicationName(w3modmanager.TITLE)
    QApplication.setApplicationVersion(w3modmanager.VERSION)
    QApplication.setApplicationDisplayName('')
    QApplication.setAttribute(Qt.AA_NativeWindows)
    QApplication.setAttribute(Qt.AA_DisableWindowContextHelpButton)
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
    QApplication.setHighDpiScaleFactorRoundingPolicy(
        Qt.HighDpiScaleFactorRoundingPolicy.RoundPreferFloor)

    app = QApplication(sys.argv)
    app.setStyleSheet('''
        Link { text-decoration: none; }
    ''')

    eventloop = QEventLoop(app)
    asyncio.set_event_loop(eventloop)

    palette = QPalette(QApplication.palette())
    palette.setColor(QPalette.Link, Qt.red)
    palette.setColor(QPalette.LinkVisited, Qt.red)
    app.setPalette(palette)

    font = QFont('Segoe UI')
    font.setStyleHint(QFont.System)
    font.setWeight(QFont.Normal)
    font.setStyleStrategy(QFont.PreferDevice)
    font.setPointSize(9)
    app.setFont(font)

    icon = QIcon()
    icon.addFile(str(getRuntimePath('resources/icons/w3b.ico')))
    app.setWindowIcon(icon)

    # configure startup overrides
    settings = QSettings()
    if gamePath:
        settings.setValue('gamePath', gamePath)
    if configPath:
        settings.setValue('configPath', configPath)
    if startupMode == StartupMode.About:
        MainWindow.showAboutDialog(None).exec_()
        sys.exit()
    if startupMode == StartupMode.Settings:
        MainWindow.showSettingsDialog(None).exec_()
        sys.exit()

    def createModel(ignorelock: bool = False) -> Model:
        nonlocal settings
        return Model(
            Path(str(settings.value('gamePath'))),
            Path(str(settings.value('configPath'))),
            Path(
                appdirs.user_data_dir(w3modmanager.NAME,
                                      w3modmanager.ORG_NAME)), ignorelock)

    try:
        # try to initialize the mod management model
        try:
            model = createModel()
        # if another instance is already open, inform and ask to open anyway
        except OtherInstanceError as e:
            if MainWindow.showOtherInstanceDialog(
                    None).exec_() == QMessageBox.Yes:
                model = createModel(True)
            else:
                raise e
        # if game path or config path is invalid or not set,
        # show a special settings dialog and retry
        except (InvalidGamePath, InvalidConfigPath):
            MainWindow.showSettingsDialog(None, True).exec_()
            model = createModel()

        # check for write access to the game and config directories
        for path in (
                model.gamepath,
                model.configpath,
                model.cachepath,
        ):
            if not getWritePermissions(path):
                if MainWindow.showInvalidPermissionsDialog(None, path).exec_() != QMessageBox.Yes \
                or not setWritePermissions(path):
                    raise PermissionError(f'Not enough permissions for {path}')

        window = MainWindow(model)
        app.setActiveWindow(window)

        def show_exception_hook(exctype, value, tb) -> None:  # noqa
            nonlocal window
            MainWindow.showCritcalErrorDialog(
                window, value,
                ''.join(traceback.format_exception(exctype, value,
                                                   tb))).exec_()
            exception_hook(exctype, value, tb)

        sys.excepthook = show_exception_hook

        with eventloop:
            sys.exit(eventloop.run_forever())

    except OtherInstanceError as e:
        sys.exit(f'error: {str(e)}')

    except (InvalidGamePath, InvalidConfigPath) as e:
        MainWindow.showInvalidConfigErrorDialog(None).exec_()
        sys.exit(f'error: {str(e)}')

    except PermissionError as e:
        MainWindow.showInvalidPermissionsErrorDialog(None).exec_()
        sys.exit(f'error: {str(e)}')

    except Exception as e:
        MainWindow.showCritcalErrorDialog(None, str(e)).exec_()
        raise e

    sys.exit()
Exemple #11
0
    def setupUi(self, EventListWindow):
        if not EventListWindow.objectName():
            EventListWindow.setObjectName(u"EventListWindow")
        EventListWindow.resize(900, 520)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(EventListWindow.sizePolicy().hasHeightForWidth())
        EventListWindow.setSizePolicy(sizePolicy)
        EventListWindow.setMinimumSize(QSize(900, 520))
        EventListWindow.setMaximumSize(QSize(900, 520))
        self.centralwidget = QWidget(EventListWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayoutWidget = QWidget(self.centralwidget)
        self.verticalLayoutWidget.setObjectName(u"verticalLayoutWidget")
        self.verticalLayoutWidget.setGeometry(QRect(10, 20, 252, 481))
        self.LayoutEventList = QVBoxLayout(self.verticalLayoutWidget)
        self.LayoutEventList.setObjectName(u"LayoutEventList")
        self.LayoutEventList.setContentsMargins(0, 0, 0, 0)
        self.LabelEventList = QLabel(self.verticalLayoutWidget)
        self.LabelEventList.setObjectName(u"LabelEventList")
        font = QFont()
        font.setPointSize(18)
        self.LabelEventList.setFont(font)
        self.LabelEventList.setFrameShape(QFrame.Box)
        self.LabelEventList.setAlignment(Qt.AlignCenter)

        self.LayoutEventList.addWidget(self.LabelEventList)

        self.ExtraButtons = QStackedWidget(self.verticalLayoutWidget)
        self.ExtraButtons.setObjectName(u"ExtraButtons")
        sizePolicy.setHeightForWidth(self.ExtraButtons.sizePolicy().hasHeightForWidth())
        self.ExtraButtons.setSizePolicy(sizePolicy)
        self.ExtraButtons.setMinimumSize(QSize(250, 34))
        self.AdminView_2 = QWidget()
        self.AdminView_2.setObjectName(u"AdminView_2")
        self.horizontalLayoutWidget = QWidget(self.AdminView_2)
        self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget")
        self.horizontalLayoutWidget.setGeometry(QRect(0, 0, 251, 41))
        self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.ButtonCreateOrganizer = QPushButton(self.horizontalLayoutWidget)
        self.ButtonCreateOrganizer.setObjectName(u"ButtonCreateOrganizer")

        self.horizontalLayout.addWidget(self.ButtonCreateOrganizer)

        self.ButtonCreateEvent = QPushButton(self.horizontalLayoutWidget)
        self.ButtonCreateEvent.setObjectName(u"ButtonCreateEvent")

        self.horizontalLayout.addWidget(self.ButtonCreateEvent)

        self.ExtraButtons.addWidget(self.AdminView_2)
        self.OrganizerView_2 = QWidget()
        self.OrganizerView_2.setObjectName(u"OrganizerView_2")
        self.ExtraButtons.addWidget(self.OrganizerView_2)

        self.LayoutEventList.addWidget(self.ExtraButtons)

        self.horizontalLayout_2 = QHBoxLayout()
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.ButtonFilter = QPushButton(self.verticalLayoutWidget)
        self.ButtonFilter.setObjectName(u"ButtonFilter")

        self.horizontalLayout_2.addWidget(self.ButtonFilter)

        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_2.addItem(self.horizontalSpacer)

        self.ButtonSort = QPushButton(self.verticalLayoutWidget)
        self.ButtonSort.setObjectName(u"ButtonSort")

        self.horizontalLayout_2.addWidget(self.ButtonSort)


        self.LayoutEventList.addLayout(self.horizontalLayout_2)

        self.ListEvents = QListWidget(self.verticalLayoutWidget)
        self.ListEvents.setObjectName(u"ListEvents")

        self.LayoutEventList.addWidget(self.ListEvents)

        self.EventEditFrame = QFrame(self.centralwidget)
        self.EventEditFrame.setObjectName(u"EventEditFrame")
        self.EventEditFrame.setGeometry(QRect(260, 20, 631, 481))
        self.EventEditFrame.setAutoFillBackground(False)
        self.EventEditFrame.setFrameShape(QFrame.StyledPanel)
        self.EventEditFrame.setFrameShadow(QFrame.Raised)
        self.verticalLayoutWidget_7 = QWidget(self.EventEditFrame)
        self.verticalLayoutWidget_7.setObjectName(u"verticalLayoutWidget_7")
        self.verticalLayoutWidget_7.setGeometry(QRect(0, 0, 631, 481))
        self.LayoutEventDetails = QVBoxLayout(self.verticalLayoutWidget_7)
        self.LayoutEventDetails.setSpacing(0)
        self.LayoutEventDetails.setObjectName(u"LayoutEventDetails")
        self.LayoutEventDetails.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.LayoutEventDetails.setContentsMargins(0, 0, 0, 0)
        self.LabelDetails = QLabel(self.verticalLayoutWidget_7)
        self.LabelDetails.setObjectName(u"LabelDetails")
        self.LabelDetails.setFont(font)
        self.LabelDetails.setAlignment(Qt.AlignCenter)

        self.LayoutEventDetails.addWidget(self.LabelDetails)

        self.stackedWidget_2 = QStackedWidget(self.verticalLayoutWidget_7)
        self.stackedWidget_2.setObjectName(u"stackedWidget_2")
        sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(self.stackedWidget_2.sizePolicy().hasHeightForWidth())
        self.stackedWidget_2.setSizePolicy(sizePolicy1)
        self.OrganizerView = QWidget()
        self.OrganizerView.setObjectName(u"OrganizerView")
        sizePolicy1.setHeightForWidth(self.OrganizerView.sizePolicy().hasHeightForWidth())
        self.OrganizerView.setSizePolicy(sizePolicy1)
        self.OrganizerView.setAutoFillBackground(False)
        self.gridLayoutWidget_2 = QWidget(self.OrganizerView)
        self.gridLayoutWidget_2.setObjectName(u"gridLayoutWidget_2")
        self.gridLayoutWidget_2.setGeometry(QRect(10, 0, 621, 453))
        self.gridLayout_3 = QGridLayout(self.gridLayoutWidget_2)
        self.gridLayout_3.setObjectName(u"gridLayout_3")
        self.gridLayout_3.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalSpacer_27 = QSpacerItem(150, 20, QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)

        self.gridLayout_3.addItem(self.horizontalSpacer_27, 1, 1, 1, 1)

        self.LayoutTimeConstraints = QVBoxLayout()
        self.LayoutTimeConstraints.setSpacing(0)
        self.LayoutTimeConstraints.setObjectName(u"LayoutTimeConstraints")
        self.LayoutTimeConstraints.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.horizontalLayout_15 = QHBoxLayout()
        self.horizontalLayout_15.setObjectName(u"horizontalLayout_15")
        self.horizontalSpacer_29 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_15.addItem(self.horizontalSpacer_29)

        self.LabelTimeConstraints = QLabel(self.gridLayoutWidget_2)
        self.LabelTimeConstraints.setObjectName(u"LabelTimeConstraints")
        sizePolicy2 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        sizePolicy2.setHorizontalStretch(0)
        sizePolicy2.setVerticalStretch(1)
        sizePolicy2.setHeightForWidth(self.LabelTimeConstraints.sizePolicy().hasHeightForWidth())
        self.LabelTimeConstraints.setSizePolicy(sizePolicy2)
        self.LabelTimeConstraints.setMinimumSize(QSize(0, 34))
        font1 = QFont()
        font1.setPointSize(13)
        font1.setBold(True)
        font1.setWeight(75)
        self.LabelTimeConstraints.setFont(font1)
        self.LabelTimeConstraints.setFrameShape(QFrame.Panel)
        self.LabelTimeConstraints.setFrameShadow(QFrame.Raised)
        self.LabelTimeConstraints.setLineWidth(1)
        self.LabelTimeConstraints.setMidLineWidth(1)
        self.LabelTimeConstraints.setAlignment(Qt.AlignCenter)
        self.LabelTimeConstraints.setMargin(6)

        self.horizontalLayout_15.addWidget(self.LabelTimeConstraints)

        self.horizontalSpacer_30 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_15.addItem(self.horizontalSpacer_30)


        self.LayoutTimeConstraints.addLayout(self.horizontalLayout_15)

        self.ListTimeConstraints = QListWidget(self.gridLayoutWidget_2)
        self.ListTimeConstraints.setObjectName(u"ListTimeConstraints")

        self.LayoutTimeConstraints.addWidget(self.ListTimeConstraints)


        self.gridLayout_3.addLayout(self.LayoutTimeConstraints, 0, 0, 1, 3)

        self.LayoutTagConstraints = QVBoxLayout()
        self.LayoutTagConstraints.setSpacing(0)
        self.LayoutTagConstraints.setObjectName(u"LayoutTagConstraints")
        self.LayoutTagConstraints.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.horizontalLayout_13 = QHBoxLayout()
        self.horizontalLayout_13.setObjectName(u"horizontalLayout_13")
        self.horizontalSpacer_25 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_13.addItem(self.horizontalSpacer_25)

        self.LabelTagConstraints = QLabel(self.gridLayoutWidget_2)
        self.LabelTagConstraints.setObjectName(u"LabelTagConstraints")
        sizePolicy2.setHeightForWidth(self.LabelTagConstraints.sizePolicy().hasHeightForWidth())
        self.LabelTagConstraints.setSizePolicy(sizePolicy2)
        self.LabelTagConstraints.setMinimumSize(QSize(0, 34))
        font2 = QFont()
        font2.setPointSize(13)
        font2.setBold(True)
        font2.setWeight(75)
        font2.setStrikeOut(False)
        font2.setKerning(True)
        font2.setStyleStrategy(QFont.PreferDefault)
        self.LabelTagConstraints.setFont(font2)
        self.LabelTagConstraints.setFrameShape(QFrame.Panel)
        self.LabelTagConstraints.setFrameShadow(QFrame.Raised)
        self.LabelTagConstraints.setLineWidth(1)
        self.LabelTagConstraints.setMidLineWidth(1)
        self.LabelTagConstraints.setAlignment(Qt.AlignCenter)
        self.LabelTagConstraints.setMargin(6)

        self.horizontalLayout_13.addWidget(self.LabelTagConstraints)

        self.horizontalSpacer_26 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_13.addItem(self.horizontalSpacer_26)


        self.LayoutTagConstraints.addLayout(self.horizontalLayout_13)

        self.ListTagConstraints = QListWidget(self.gridLayoutWidget_2)
        self.ListTagConstraints.setObjectName(u"ListTagConstraints")

        self.LayoutTagConstraints.addWidget(self.ListTagConstraints)


        self.gridLayout_3.addLayout(self.LayoutTagConstraints, 2, 0, 1, 2)

        self.LabelRoomGroup = QLabel(self.gridLayoutWidget_2)
        self.LabelRoomGroup.setObjectName(u"LabelRoomGroup")

        self.gridLayout_3.addWidget(self.LabelRoomGroup, 6, 1, 1, 1)

        self.LayoutSpaceConstraint = QVBoxLayout()
        self.LayoutSpaceConstraint.setSpacing(0)
        self.LayoutSpaceConstraint.setObjectName(u"LayoutSpaceConstraint")
        self.LayoutSpaceConstraint.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.horizontalLayout_11 = QHBoxLayout()
        self.horizontalLayout_11.setObjectName(u"horizontalLayout_11")
        self.horizontalSpacer_21 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_11.addItem(self.horizontalSpacer_21)

        self.LabelSpaceTitle = QLabel(self.gridLayoutWidget_2)
        self.LabelSpaceTitle.setObjectName(u"LabelSpaceTitle")
        sizePolicy2.setHeightForWidth(self.LabelSpaceTitle.sizePolicy().hasHeightForWidth())
        self.LabelSpaceTitle.setSizePolicy(sizePolicy2)
        self.LabelSpaceTitle.setMinimumSize(QSize(0, 34))
        self.LabelSpaceTitle.setMaximumSize(QSize(16777215, 30))
        self.LabelSpaceTitle.setFont(font2)
        self.LabelSpaceTitle.setFrameShape(QFrame.Panel)
        self.LabelSpaceTitle.setFrameShadow(QFrame.Raised)
        self.LabelSpaceTitle.setLineWidth(1)
        self.LabelSpaceTitle.setMidLineWidth(1)
        self.LabelSpaceTitle.setAlignment(Qt.AlignCenter)
        self.LabelSpaceTitle.setMargin(6)

        self.horizontalLayout_11.addWidget(self.LabelSpaceTitle)

        self.horizontalSpacer_22 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_11.addItem(self.horizontalSpacer_22)


        self.LayoutSpaceConstraint.addLayout(self.horizontalLayout_11)

        self.horizontalLayout_12 = QHBoxLayout()
        self.horizontalLayout_12.setObjectName(u"horizontalLayout_12")
        self.horizontalSpacer_23 = QSpacerItem(60, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)

        self.horizontalLayout_12.addItem(self.horizontalSpacer_23)

        self.FieldSpaceConstraint = QLineEdit(self.gridLayoutWidget_2)
        self.FieldSpaceConstraint.setObjectName(u"FieldSpaceConstraint")

        self.horizontalLayout_12.addWidget(self.FieldSpaceConstraint)

        self.horizontalSpacer_24 = QSpacerItem(60, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)

        self.horizontalLayout_12.addItem(self.horizontalSpacer_24)


        self.LayoutSpaceConstraint.addLayout(self.horizontalLayout_12)

        self.horizontalLayout_16 = QHBoxLayout()
        self.horizontalLayout_16.setObjectName(u"horizontalLayout_16")
        self.ButtonUpdateSpaceConstraint = QPushButton(self.gridLayoutWidget_2)
        self.ButtonUpdateSpaceConstraint.setObjectName(u"ButtonUpdateSpaceConstraint")
        sizePolicy.setHeightForWidth(self.ButtonUpdateSpaceConstraint.sizePolicy().hasHeightForWidth())
        self.ButtonUpdateSpaceConstraint.setSizePolicy(sizePolicy)

        self.horizontalLayout_16.addWidget(self.ButtonUpdateSpaceConstraint)


        self.LayoutSpaceConstraint.addLayout(self.horizontalLayout_16)


        self.gridLayout_3.addLayout(self.LayoutSpaceConstraint, 2, 2, 1, 1)

        self.horizontalLayout_9 = QHBoxLayout()
        self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
        self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_9.addItem(self.horizontalSpacer_4)

        self.ButtonAddTimeConstraint = QPushButton(self.gridLayoutWidget_2)
        self.ButtonAddTimeConstraint.setObjectName(u"ButtonAddTimeConstraint")

        self.horizontalLayout_9.addWidget(self.ButtonAddTimeConstraint)


        self.gridLayout_3.addLayout(self.horizontalLayout_9, 1, 2, 1, 1)

        self.LabelDateTitle = QLabel(self.gridLayoutWidget_2)
        self.LabelDateTitle.setObjectName(u"LabelDateTitle")

        self.gridLayout_3.addWidget(self.LabelDateTitle, 5, 0, 1, 1)

        self.LabelScheduledDatetime = QLabel(self.gridLayoutWidget_2)
        self.LabelScheduledDatetime.setObjectName(u"LabelScheduledDatetime")

        self.gridLayout_3.addWidget(self.LabelScheduledDatetime, 6, 0, 1, 1)

        self.LabelScheduledRoom = QLabel(self.gridLayoutWidget_2)
        self.LabelScheduledRoom.setObjectName(u"LabelScheduledRoom")

        self.gridLayout_3.addWidget(self.LabelScheduledRoom, 6, 2, 1, 1)

        self.LabelRoomTitle = QLabel(self.gridLayoutWidget_2)
        self.LabelRoomTitle.setObjectName(u"LabelRoomTitle")

        self.gridLayout_3.addWidget(self.LabelRoomTitle, 5, 2, 1, 1)

        self.horizontalLayout_10 = QHBoxLayout()
        self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
        self.horizontalSpacer_13 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_10.addItem(self.horizontalSpacer_13)

        self.ButtonAddTagConstraint = QPushButton(self.gridLayoutWidget_2)
        self.ButtonAddTagConstraint.setObjectName(u"ButtonAddTagConstraint")

        self.horizontalLayout_10.addWidget(self.ButtonAddTagConstraint)


        self.gridLayout_3.addLayout(self.horizontalLayout_10, 3, 1, 1, 1)

        self.LabelRoomGroupTitle = QLabel(self.gridLayoutWidget_2)
        self.LabelRoomGroupTitle.setObjectName(u"LabelRoomGroupTitle")

        self.gridLayout_3.addWidget(self.LabelRoomGroupTitle, 5, 1, 1, 1)

        self.DividingLine = QFrame(self.gridLayoutWidget_2)
        self.DividingLine.setObjectName(u"DividingLine")
        self.DividingLine.setFrameShape(QFrame.HLine)
        self.DividingLine.setFrameShadow(QFrame.Sunken)

        self.gridLayout_3.addWidget(self.DividingLine, 4, 0, 1, 3)

        self.stackedWidget_2.addWidget(self.OrganizerView)
        self.AdminView = QWidget()
        self.AdminView.setObjectName(u"AdminView")
        sizePolicy1.setHeightForWidth(self.AdminView.sizePolicy().hasHeightForWidth())
        self.AdminView.setSizePolicy(sizePolicy1)
        self.gridLayoutWidget = QWidget(self.AdminView)
        self.gridLayoutWidget.setObjectName(u"gridLayoutWidget")
        self.gridLayoutWidget.setGeometry(QRect(10, 0, 621, 451))
        self.gridLayout = QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setObjectName(u"gridLayout")
        self.gridLayout.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.LayoutTags = QVBoxLayout()
        self.LayoutTags.setSpacing(0)
        self.LayoutTags.setObjectName(u"LayoutTags")
        self.verticalSpacer_2 = QSpacerItem(20, 30, QSizePolicy.Minimum, QSizePolicy.Minimum)

        self.LayoutTags.addItem(self.verticalSpacer_2)

        self.horizontalLayout_6 = QHBoxLayout()
        self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
        self.LabelTags = QLabel(self.gridLayoutWidget)
        self.LabelTags.setObjectName(u"LabelTags")
        sizePolicy3 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        sizePolicy3.setHorizontalStretch(0)
        sizePolicy3.setVerticalStretch(0)
        sizePolicy3.setHeightForWidth(self.LabelTags.sizePolicy().hasHeightForWidth())
        self.LabelTags.setSizePolicy(sizePolicy3)
        self.LabelTags.setMinimumSize(QSize(0, 30))
        self.LabelTags.setFont(font2)
        self.LabelTags.setFrameShape(QFrame.Panel)
        self.LabelTags.setFrameShadow(QFrame.Raised)
        self.LabelTags.setLineWidth(1)
        self.LabelTags.setMidLineWidth(0)
        self.LabelTags.setAlignment(Qt.AlignCenter)
        self.LabelTags.setMargin(6)

        self.horizontalLayout_6.addWidget(self.LabelTags)

        self.horizontalSpacer_11 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_6.addItem(self.horizontalSpacer_11)

        self.ButtonAddTag = QPushButton(self.gridLayoutWidget)
        self.ButtonAddTag.setObjectName(u"ButtonAddTag")

        self.horizontalLayout_6.addWidget(self.ButtonAddTag)


        self.LayoutTags.addLayout(self.horizontalLayout_6)

        self.listWidget_3 = QListWidget(self.gridLayoutWidget)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        QListWidgetItem(self.listWidget_3)
        self.listWidget_3.setObjectName(u"listWidget_3")
        self.listWidget_3.setEnabled(True)
        self.listWidget_3.setFlow(QListView.LeftToRight)

        self.LayoutTags.addWidget(self.listWidget_3)


        self.gridLayout.addLayout(self.LayoutTags, 5, 0, 1, 1)

        self.LabelDateTitle_2 = QLabel(self.gridLayoutWidget)
        self.LabelDateTitle_2.setObjectName(u"LabelDateTitle_2")

        self.gridLayout.addWidget(self.LabelDateTitle_2, 3, 0, 1, 1)

        self.DividingLine_2 = QFrame(self.gridLayoutWidget)
        self.DividingLine_2.setObjectName(u"DividingLine_2")
        self.DividingLine_2.setFrameShape(QFrame.HLine)
        self.DividingLine_2.setFrameShadow(QFrame.Sunken)

        self.gridLayout.addWidget(self.DividingLine_2, 2, 0, 1, 3)

        self.LayoutSpaceConstraint_2 = QVBoxLayout()
        self.LayoutSpaceConstraint_2.setSpacing(0)
        self.LayoutSpaceConstraint_2.setObjectName(u"LayoutSpaceConstraint_2")
        self.LayoutSpaceConstraint_2.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.horizontalLayout_4 = QHBoxLayout()
        self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
        self.horizontalSpacer_9 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_4.addItem(self.horizontalSpacer_9)

        self.LabelSpaceTitle_2 = QLabel(self.gridLayoutWidget)
        self.LabelSpaceTitle_2.setObjectName(u"LabelSpaceTitle_2")
        sizePolicy2.setHeightForWidth(self.LabelSpaceTitle_2.sizePolicy().hasHeightForWidth())
        self.LabelSpaceTitle_2.setSizePolicy(sizePolicy2)
        self.LabelSpaceTitle_2.setMinimumSize(QSize(0, 30))
        self.LabelSpaceTitle_2.setFont(font2)
        self.LabelSpaceTitle_2.setFrameShape(QFrame.Panel)
        self.LabelSpaceTitle_2.setFrameShadow(QFrame.Raised)
        self.LabelSpaceTitle_2.setLineWidth(1)
        self.LabelSpaceTitle_2.setMidLineWidth(1)
        self.LabelSpaceTitle_2.setAlignment(Qt.AlignCenter)
        self.LabelSpaceTitle_2.setMargin(6)

        self.horizontalLayout_4.addWidget(self.LabelSpaceTitle_2)

        self.horizontalSpacer_10 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_4.addItem(self.horizontalSpacer_10)


        self.LayoutSpaceConstraint_2.addLayout(self.horizontalLayout_4)

        self.horizontalLayout_5 = QHBoxLayout()
        self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
        self.horizontalSpacer_7 = QSpacerItem(60, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)

        self.horizontalLayout_5.addItem(self.horizontalSpacer_7)

        self.LabelSpaceConstraint = QLabel(self.gridLayoutWidget)
        self.LabelSpaceConstraint.setObjectName(u"LabelSpaceConstraint")
        self.LabelSpaceConstraint.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_5.addWidget(self.LabelSpaceConstraint)

        self.horizontalSpacer_8 = QSpacerItem(60, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)

        self.horizontalLayout_5.addItem(self.horizontalSpacer_8)


        self.LayoutSpaceConstraint_2.addLayout(self.horizontalLayout_5)


        self.gridLayout.addLayout(self.LayoutSpaceConstraint_2, 1, 0, 1, 1)

        self.LayoutTimeConstraints_2 = QVBoxLayout()
        self.LayoutTimeConstraints_2.setSpacing(0)
        self.LayoutTimeConstraints_2.setObjectName(u"LayoutTimeConstraints_2")
        self.LayoutTimeConstraints_2.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.horizontalLayout_7 = QHBoxLayout()
        self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
        self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_7.addItem(self.horizontalSpacer_2)

        self.LabelTimeConstraints_2 = QLabel(self.gridLayoutWidget)
        self.LabelTimeConstraints_2.setObjectName(u"LabelTimeConstraints_2")
        sizePolicy2.setHeightForWidth(self.LabelTimeConstraints_2.sizePolicy().hasHeightForWidth())
        self.LabelTimeConstraints_2.setSizePolicy(sizePolicy2)
        self.LabelTimeConstraints_2.setMinimumSize(QSize(0, 30))
        self.LabelTimeConstraints_2.setFont(font2)
        self.LabelTimeConstraints_2.setFrameShape(QFrame.Panel)
        self.LabelTimeConstraints_2.setFrameShadow(QFrame.Raised)
        self.LabelTimeConstraints_2.setLineWidth(1)
        self.LabelTimeConstraints_2.setMidLineWidth(1)
        self.LabelTimeConstraints_2.setAlignment(Qt.AlignCenter)
        self.LabelTimeConstraints_2.setMargin(6)

        self.horizontalLayout_7.addWidget(self.LabelTimeConstraints_2)

        self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_7.addItem(self.horizontalSpacer_3)


        self.LayoutTimeConstraints_2.addLayout(self.horizontalLayout_7)

        self.listWidget = QListWidget(self.gridLayoutWidget)
        self.listWidget.setObjectName(u"listWidget")

        self.LayoutTimeConstraints_2.addWidget(self.listWidget)


        self.gridLayout.addLayout(self.LayoutTimeConstraints_2, 0, 0, 1, 1)

        self.LayoutTagConstraints_2 = QVBoxLayout()
        self.LayoutTagConstraints_2.setSpacing(0)
        self.LayoutTagConstraints_2.setObjectName(u"LayoutTagConstraints_2")
        self.LayoutTagConstraints_2.setSizeConstraint(QLayout.SetDefaultConstraint)
        self.horizontalLayout_3 = QHBoxLayout()
        self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
        self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_3.addItem(self.horizontalSpacer_5)

        self.LabelTagConstraints_2 = QLabel(self.gridLayoutWidget)
        self.LabelTagConstraints_2.setObjectName(u"LabelTagConstraints_2")
        sizePolicy2.setHeightForWidth(self.LabelTagConstraints_2.sizePolicy().hasHeightForWidth())
        self.LabelTagConstraints_2.setSizePolicy(sizePolicy2)
        self.LabelTagConstraints_2.setMinimumSize(QSize(0, 30))
        self.LabelTagConstraints_2.setFont(font2)
        self.LabelTagConstraints_2.setFrameShape(QFrame.Panel)
        self.LabelTagConstraints_2.setFrameShadow(QFrame.Raised)
        self.LabelTagConstraints_2.setLineWidth(1)
        self.LabelTagConstraints_2.setMidLineWidth(1)
        self.LabelTagConstraints_2.setAlignment(Qt.AlignCenter)
        self.LabelTagConstraints_2.setMargin(6)

        self.horizontalLayout_3.addWidget(self.LabelTagConstraints_2)

        self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_3.addItem(self.horizontalSpacer_6)


        self.LayoutTagConstraints_2.addLayout(self.horizontalLayout_3)

        self.ListTagConstraints_2 = QListWidget(self.gridLayoutWidget)
        self.ListTagConstraints_2.setObjectName(u"ListTagConstraints_2")

        self.LayoutTagConstraints_2.addWidget(self.ListTagConstraints_2)


        self.gridLayout.addLayout(self.LayoutTagConstraints_2, 0, 2, 1, 1)

        self.LabelScheduledRoom_2 = QLabel(self.gridLayoutWidget)
        self.LabelScheduledRoom_2.setObjectName(u"LabelScheduledRoom_2")
        self.LabelScheduledRoom_2.setIndent(6)

        self.gridLayout.addWidget(self.LabelScheduledRoom_2, 4, 2, 1, 1)

        self.LabelScheduledDatetime_2 = QLabel(self.gridLayoutWidget)
        self.LabelScheduledDatetime_2.setObjectName(u"LabelScheduledDatetime_2")

        self.gridLayout.addWidget(self.LabelScheduledDatetime_2, 4, 0, 1, 1)

        self.horizontalSpacer_12 = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)

        self.gridLayout.addItem(self.horizontalSpacer_12, 0, 1, 1, 1)

        self.LabelRoomTitle_2 = QLabel(self.gridLayoutWidget)
        self.LabelRoomTitle_2.setObjectName(u"LabelRoomTitle_2")
        self.LabelRoomTitle_2.setMargin(0)
        self.LabelRoomTitle_2.setIndent(6)

        self.gridLayout.addWidget(self.LabelRoomTitle_2, 3, 2, 1, 1)

        self.LayoutExecuteScheduling = QVBoxLayout()
        self.LayoutExecuteScheduling.setSpacing(6)
        self.LayoutExecuteScheduling.setObjectName(u"LayoutExecuteScheduling")
        self.LabelRoomGroupTitle_2 = QLabel(self.gridLayoutWidget)
        self.LabelRoomGroupTitle_2.setObjectName(u"LabelRoomGroupTitle_2")
        self.LabelRoomGroupTitle_2.setMargin(2)
        self.LabelRoomGroupTitle_2.setIndent(4)

        self.LayoutExecuteScheduling.addWidget(self.LabelRoomGroupTitle_2)

        self.LabelRoomGroup_2 = QLabel(self.gridLayoutWidget)
        self.LabelRoomGroup_2.setObjectName(u"LabelRoomGroup_2")
        self.LabelRoomGroup_2.setMargin(2)
        self.LabelRoomGroup_2.setIndent(4)

        self.LayoutExecuteScheduling.addWidget(self.LabelRoomGroup_2)

        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)

        self.LayoutExecuteScheduling.addItem(self.verticalSpacer)

        self.horizontalLayout_14 = QHBoxLayout()
        self.horizontalLayout_14.setObjectName(u"horizontalLayout_14")
        self.ButtonExecute = QPushButton(self.gridLayoutWidget)
        self.ButtonExecute.setObjectName(u"ButtonExecute")
        sizePolicy.setHeightForWidth(self.ButtonExecute.sizePolicy().hasHeightForWidth())
        self.ButtonExecute.setSizePolicy(sizePolicy)
        self.ButtonExecute.setMinimumSize(QSize(170, 32))
        font3 = QFont()
        font3.setBold(True)
        font3.setItalic(False)
        font3.setWeight(75)
        self.ButtonExecute.setFont(font3)
        self.ButtonExecute.setLayoutDirection(Qt.LeftToRight)
        self.ButtonExecute.setFlat(False)

        self.horizontalLayout_14.addWidget(self.ButtonExecute)


        self.LayoutExecuteScheduling.addLayout(self.horizontalLayout_14)


        self.gridLayout.addLayout(self.LayoutExecuteScheduling, 5, 2, 1, 1)

        self.LayoutAssignOrganizer = QVBoxLayout()
        self.LayoutAssignOrganizer.setSpacing(0)
        self.LayoutAssignOrganizer.setObjectName(u"LayoutAssignOrganizer")
        self.LayoutAssignOrganizer.setContentsMargins(8, 8, 8, 8)
        self.horizontalLayout_8 = QHBoxLayout()
        self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
        self.LabelAssignedOrganizer = QLabel(self.gridLayoutWidget)
        self.LabelAssignedOrganizer.setObjectName(u"LabelAssignedOrganizer")
        self.LabelAssignedOrganizer.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_8.addWidget(self.LabelAssignedOrganizer)

        self.horizontalSpacer_14 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_8.addItem(self.horizontalSpacer_14)

        self.ButtonAssignOrganizer = QPushButton(self.gridLayoutWidget)
        self.ButtonAssignOrganizer.setObjectName(u"ButtonAssignOrganizer")

        self.horizontalLayout_8.addWidget(self.ButtonAssignOrganizer)


        self.LayoutAssignOrganizer.addLayout(self.horizontalLayout_8)


        self.gridLayout.addLayout(self.LayoutAssignOrganizer, 1, 2, 1, 1)

        self.stackedWidget_2.addWidget(self.AdminView)

        self.LayoutEventDetails.addWidget(self.stackedWidget_2)

        self.LabelHint = QLabel(self.centralwidget)
        self.LabelHint.setObjectName(u"LabelHint")
        self.LabelHint.setGeometry(QRect(440, 260, 281, 20))
        EventListWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(EventListWindow)

        self.ExtraButtons.setCurrentIndex(0)
        self.stackedWidget_2.setCurrentIndex(0)
        self.ButtonExecute.setDefault(False)


        QMetaObject.connectSlotsByName(EventListWindow)
class MainWindow(QMainWindow):
    font: QFont
    container: QWidget
    drop_label: QLabel
    calculate_button: QPushButton
    status_bar: QStatusBar
    directory_path: str = None
    _is_calculating: bool

    def __init__(self):
        super().__init__()

        self.font = QFont()
        self.font.setPointSize(25)
        self.font.setKerning(True)
        self.font.setStyleStrategy(QFont.PreferAntialias)

        self.setMinimumSize(QSize(560, 260))
        self.setMaximumSize(QSize(560, 260))
        self.setAcceptDrops(True)
        self.setWindowTitle(u"Source Code Calculator")
        self.setFixedSize(self.size())

        self.setup_interface()
        self.init_handlers()

    def setup_interface(self):
        if not self.objectName():
            self.setObjectName(u"Form")

        self.setup_container()
        self.setup_calculate_button()
        self.setup_drop_label()
        self.setup_status_bar()

        QMetaObject.connectSlotsByName(self)

    def setup_container(self):
        self.container = QWidget(self)
        self.container.setObjectName(u"container")
        self.setCentralWidget(self.container)

    def setup_status_bar(self):
        self.status_bar = QStatusBar(self)
        self.status_bar.setObjectName(u"status_bar")
        self.setStatusBar(self.status_bar)

    def setup_drop_label(self):
        self.drop_label = QLabel(self.container)
        self.drop_label.setObjectName(u"drop_label")
        self.drop_label.setEnabled(True)
        self.drop_label.setGeometry(QRect(10, 10, 541, 171))
        self.drop_label.setFont(self.font)
        self.drop_label.setAutoFillBackground(False)
        self.drop_label.setFrameShape(QFrame.StyledPanel)
        self.drop_label.setText(u"Drop Your folder here")
        self.drop_label.setTextFormat(Qt.PlainText)
        self.drop_label.setAlignment(Qt.AlignCenter)

    def setup_calculate_button(self):
        self.calculate_button = QPushButton(self.container, text="Calculate")
        self.calculate_button.setObjectName(u"calculate_button")
        self.calculate_button.setEnabled(False)
        self.calculate_button.setGeometry(QRect(220, 190, 112, 32))
        self.calculate_button.setFocusPolicy(Qt.NoFocus)

    def init_handlers(self):
        self.calculate_button.clicked.connect(self.on_calculate)

    @property
    def is_calculating(self):
        return self._is_calculating

    @is_calculating.setter
    def is_calculating(self, value):
        self._is_calculating = value
        self.setAcceptDrops(not value)
        self.calculate_button.setEnabled(not value)

        if value:
            self.drop_label.setText("Calculating ...")

    def on_calculate(self):
        if self.directory_path is not None:
            self.is_calculating = True
            asyncio.create_task(self.calculate())

    async def calculate(self):
        calculator = CodeCalculator(self.directory_path)
        lines_of_code = await calculator.count()
        self.after_calculate(lines_of_code)

    def after_calculate(self, result: int):
        self.drop_label.setText(f"Lines of code: {result:0,d}")
        self.is_calculating = False

    def dragEnterEvent(self, event: QDragEnterEvent):
        if event.mimeData().hasUrls():
            event.acceptProposedAction()

    def dropEvent(self, event: QDropEvent):
        uri: QUrl = event.mimeData().urls()[0]
        self.update_selected_path(uri)

    def update_selected_path(self, uri: QUrl):
        path = uri.toLocalFile()

        if not os.path.isdir(path):
            self.drop_label.setText("Drop directory instead of files")
            return

        self.directory_path = path

        max_label_length = 40

        if len(path) > max_label_length:
            path = path[:max_label_length] + '...'

        self.drop_label.setText(path)
        self.calculate_button.setEnabled(True)
        self.drop_label.setToolTip(self.directory_path)
Exemple #13
0
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(800, 600)
        sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QSize(800, 600))
        MainWindow.setMaximumSize(QSize(800, 600))
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_Toolbar = QFrame(self.centralwidget)
        self.frame_Toolbar.setObjectName(u"frame_Toolbar")
        self.frame_Toolbar.setMaximumSize(QSize(16777215, 45))
        self.frame_Toolbar.setStyleSheet(
            u"background-color: rgb(128, 142, 149);")
        self.frame_Toolbar.setFrameShape(QFrame.StyledPanel)
        self.frame_Toolbar.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_toolbar = QHBoxLayout(self.frame_Toolbar)
        self.horizontalLayout_toolbar.setSpacing(0)
        self.horizontalLayout_toolbar.setObjectName(
            u"horizontalLayout_toolbar")
        self.horizontalLayout_toolbar.setContentsMargins(0, 0, 0, 0)
        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                            QSizePolicy.Minimum)

        self.horizontalLayout_toolbar.addItem(self.horizontalSpacer)

        self.pushButton_maximize = QPushButton(self.frame_Toolbar)
        self.pushButton_maximize.setObjectName(u"pushButton_maximize")
        sizePolicy1 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(
            self.pushButton_maximize.sizePolicy().hasHeightForWidth())
        self.pushButton_maximize.setSizePolicy(sizePolicy1)
        self.pushButton_maximize.setMinimumSize(QSize(0, 0))

        self.horizontalLayout_toolbar.addWidget(self.pushButton_maximize)

        self.horizontalLayout_toolbar.setStretch(0, 20)

        self.verticalLayout.addWidget(self.frame_Toolbar)

        self.frame_Up = QFrame(self.centralwidget)
        self.frame_Up.setObjectName(u"frame_Up")
        self.frame_Up.setMaximumSize(QSize(16777215, 120))
        self.frame_Up.setStyleSheet(
            u"background-color: rgb(176, 190, 197);\n"
            "font: 75 10pt \"\u5fae\u8f6f\u96c5\u9ed1\";\n"
            "color: rgb(102, 102, 102);\n"
            "\n"
            "")
        self.frame_Up.setFrameShape(QFrame.StyledPanel)
        self.frame_Up.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.frame_Up)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.pushButton = QPushButton(self.frame_Up)
        self.pushButton.setObjectName(u"pushButton")
        sizePolicy1.setHeightForWidth(
            self.pushButton.sizePolicy().hasHeightForWidth())
        self.pushButton.setSizePolicy(sizePolicy1)
        font = QFont()
        font.setFamily(u"\u5fae\u8f6f\u96c5\u9ed1")
        font.setPointSize(10)
        font.setBold(False)
        font.setItalic(False)
        font.setUnderline(False)
        font.setWeight(9)
        font.setStrikeOut(False)
        font.setKerning(True)
        font.setStyleStrategy(QFont.PreferDefault)
        self.pushButton.setFont(font)
        self.pushButton.setStyleSheet(u"")

        self.horizontalLayout.addWidget(self.pushButton)

        self.pushButton_2 = QPushButton(self.frame_Up)
        self.pushButton_2.setObjectName(u"pushButton_2")
        sizePolicy2 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy2.setHorizontalStretch(0)
        sizePolicy2.setVerticalStretch(0)
        sizePolicy2.setHeightForWidth(
            self.pushButton_2.sizePolicy().hasHeightForWidth())
        self.pushButton_2.setSizePolicy(sizePolicy2)

        self.horizontalLayout.addWidget(self.pushButton_2)

        self.pushButton_3 = QPushButton(self.frame_Up)
        self.pushButton_3.setObjectName(u"pushButton_3")
        sizePolicy2.setHeightForWidth(
            self.pushButton_3.sizePolicy().hasHeightForWidth())
        self.pushButton_3.setSizePolicy(sizePolicy2)

        self.horizontalLayout.addWidget(self.pushButton_3)

        self.verticalLayout.addWidget(self.frame_Up)

        self.frame_Center = QFrame(self.centralwidget)
        self.frame_Center.setObjectName(u"frame_Center")
        self.frame_Center.setStyleSheet(
            u"background-color: rgb(128, 142, 149);")
        self.frame_Center.setFrameShape(QFrame.StyledPanel)
        self.frame_Center.setFrameShadow(QFrame.Raised)

        self.verticalLayout.addWidget(self.frame_Center)

        self.frame_Down = QFrame(self.centralwidget)
        self.frame_Down.setObjectName(u"frame_Down")
        self.frame_Down.setMaximumSize(QSize(16777215, 120))
        self.frame_Down.setStyleSheet(
            u"background-color: rgb(176, 190, 197);\n"
            "font: 75 10pt \"\u5fae\u8f6f\u96c5\u9ed1\";\n"
            "color: rgb(102, 102, 102);\n"
            "")
        self.frame_Down.setFrameShape(QFrame.StyledPanel)
        self.frame_Down.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_2 = QHBoxLayout(self.frame_Down)
        self.horizontalLayout_2.setSpacing(0)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.pushButton_5 = QPushButton(self.frame_Down)
        self.pushButton_5.setObjectName(u"pushButton_5")
        sizePolicy2.setHeightForWidth(
            self.pushButton_5.sizePolicy().hasHeightForWidth())
        self.pushButton_5.setSizePolicy(sizePolicy2)

        self.horizontalLayout_2.addWidget(self.pushButton_5)

        self.pushButton_6 = QPushButton(self.frame_Down)
        self.pushButton_6.setObjectName(u"pushButton_6")
        sizePolicy2.setHeightForWidth(
            self.pushButton_6.sizePolicy().hasHeightForWidth())
        self.pushButton_6.setSizePolicy(sizePolicy2)

        self.horizontalLayout_2.addWidget(self.pushButton_6)

        self.pushButton_exit = QPushButton(self.frame_Down)
        self.pushButton_exit.setObjectName(u"pushButton_exit")
        sizePolicy2.setHeightForWidth(
            self.pushButton_exit.sizePolicy().hasHeightForWidth())
        self.pushButton_exit.setSizePolicy(sizePolicy2)

        self.horizontalLayout_2.addWidget(self.pushButton_exit)

        self.verticalLayout.addWidget(self.frame_Down)

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        self.pushButton_exit.clicked.connect(MainWindow.close)

        QMetaObject.connectSlotsByName(MainWindow)