Esempio n. 1
0
class TableWidget(QFrame):
    def __init__(self, parent):
        super(TableWidget, self).__init__(parent)

        self.m_frame = QFrame(self)
        self.m_frame.setFrameShape(QFrame.Panel)
        self.m_frame.setFrameShadow(QFrame.Plain)

        horizontalLayout = QHBoxLayout(self.m_frame)
        horizontalLayout.setContentsMargins(0, 0, 0, 0)
        horizontalLayout.setSpacing(0)

        self.m_table = QTableView(self.m_frame)
        self.m_table.setStatusTip("")
        self.m_table.setLayoutDirection(Qt.LeftToRight)
        self.m_table.setFrameShape(QFrame.NoFrame)
        self.m_table.setFrameShadow(QFrame.Plain)
        self.m_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        horizontalLayout.addWidget(self.m_table)

        self.m_line = QFrame(self.m_frame)
        self.m_line.setFrameShadow(QFrame.Plain)
        self.m_line.setFrameShape(QFrame.VLine)
        horizontalLayout.addWidget(self.m_line)

        self.m_toolBtnFrame = QFrame(self.m_frame)
        self.m_toolBtnFrame.setLayoutDirection(Qt.RightToLeft)
        self.m_toolBtnFrame.setFrameShape(QFrame.NoFrame)
        self.m_toolBtnFrame.setFrameShadow(QFrame.Plain)

        self.m_verticalLayout = QVBoxLayout(self.m_toolBtnFrame)
        self.m_verticalLayout.setContentsMargins(1, 1, 1, 1)
        self.m_verticalLayout.setSpacing(1)

        self.m_addBtn = QToolButton(self.m_toolBtnFrame)
        icon = QIcon()
        icon.addPixmap(QPixmap(":/icons/plus.png"), QIcon.Normal, QIcon.Off)
        self.m_addBtn.setIcon(icon)
        self.m_addBtn.setAutoRaise(True)
        self.m_addBtn.setArrowType(Qt.NoArrow)
        self.m_verticalLayout.addWidget(self.m_addBtn)

        self.m_deleteBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/minus.png"), QIcon.Normal, QIcon.Off)
        self.m_deleteBtn.setIcon(icon1)
        self.m_deleteBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_deleteBtn)

        self.m_clearAllBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/clear.png"), QIcon.Normal, QIcon.Off)
        self.m_clearAllBtn.setIcon(icon1)
        self.m_clearAllBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_clearAllBtn)
        self.m_clearAllBtn.setVisible(False)

        self.m_browseBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/local.png"), QIcon.Normal, QIcon.Off)
        self.m_browseBtn.setIcon(icon1)
        self.m_browseBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_browseBtn)
        self.m_browseBtn.setVisible(False)

        self.m_editBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/edit.png"), QIcon.Normal, QIcon.Off)
        self.m_editBtn.setIcon(icon1)
        self.m_editBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_editBtn)
        self.m_editBtn.setVisible(False)

        self.m_pdfBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/pdf.png"), QIcon.Normal, QIcon.Off)
        self.m_pdfBtn.setIcon(icon1)
        self.m_pdfBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_pdfBtn)
        self.m_pdfBtn.setVisible(False)
        self.m_pdfBtn.setToolTip("Generate PDF report")

        self.m_htmlBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/html.png"), QIcon.Normal, QIcon.Off)
        self.m_htmlBtn.setIcon(icon1)
        self.m_htmlBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_htmlBtn)
        self.m_htmlBtn.setVisible(False)
        self.m_htmlBtn.setToolTip("Generate HTML report")

        self.m_textBtn = QToolButton(self.m_toolBtnFrame)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/icons/text.png"), QIcon.Normal, QIcon.Off)
        self.m_textBtn.setIcon(icon1)
        self.m_textBtn.setAutoRaise(True)
        self.m_verticalLayout.addWidget(self.m_textBtn)
        self.m_textBtn.setVisible(False)
        self.m_textBtn.setToolTip("Generate report in text format")

        spacerItem = QSpacerItem(20, 10, QSizePolicy.Minimum,
                                 QSizePolicy.Expanding)
        self.m_verticalLayout.addItem(spacerItem)
        horizontalLayout.addWidget(self.m_toolBtnFrame)

        mainLayout = QHBoxLayout()
        mainLayout.setContentsMargins(0, 0, 0, 0)
        mainLayout.addWidget(self.m_frame)

        self.setLayout(mainLayout)

    def addActionToAddBtn(self, action):
        menu = self.m_addBtn.menu()
        if menu is None:
            self.m_addBtn.setMenu(QMenu())
            self.m_addBtn.setPopupMode(QToolButton.MenuButtonPopup)
            menu = self.m_addBtn.menu()

        menu.addAction(action)

    def showClearAll(self, show):
        self.m_clearAllBtn.setVisible(show)

    def showBrowse(self, show):
        self.m_browseBtn.setVisible(show)

    def showEdit(self, show):
        self.m_editBtn.setVisible(show)

    def showPdfBtn(self, show):
        self.m_pdfBtn.setVisible(show)

    def showHtmlBtn(self, show):
        self.m_htmlBtn.setVisible(show)

    def showTextBtn(self, show):
        self.m_textBtn.setVisible(show)

    def showAddBtn(self, show):
        self.m_addBtn.setVisible(show)

    def showDeleteBtn(self, show):
        self.m_deleteBtn.setVisible(show)

    def showBtns(self, show):
        self.m_toolBtnFrame.setVisible(show)

    def model(self):
        return self.m_table.model()

    def setModel(self, model):
        self.m_table.setModel(model)
        if self.m_table.selectionModel() is not None:
            self.m_table.selectionModel().selectionChanged.connect(
                self.updateDeleteBtnState)
            self.updateDeleteBtnState()
            self.m_table.selectionModel().selectionChanged.connect(
                self.updateEditBtnState)
            self.updateEditBtnState()
            self.m_table.selectionModel().selectionChanged.connect(
                self.updatePdfBtnState)
            self.updatePdfBtnState()
            self.m_table.selectionModel().selectionChanged.connect(
                self.updateHtmlBtnState)
            self.updateHtmlBtnState()
            self.m_table.selectionModel().selectionChanged.connect(
                self.updateTextBtnState)
            self.updateTextBtnState()

    def updateDeleteBtnState(self):
        enable = self.m_table.selectionModel().hasSelection()
        self.m_deleteBtn.setEnabled(enable)

    def updateEditBtnState(self):
        enable = self.m_table.selectionModel().hasSelection()
        self.m_editBtn.setEnabled(enable)

    def updateHtmlBtnState(self):
        enable = self.m_table.selectionModel().hasSelection()
        self.m_htmlBtn.setEnabled(enable)

    def updatePdfBtnState(self):
        enable = self.m_table.selectionModel().hasSelection()
        self.m_pdfBtn.setEnabled(enable)

    def updateTextBtnState(self):
        enable = self.m_table.selectionModel().hasSelection()
        self.m_textBtn.setEnabled(enable)

    def addBtn(self):
        return self.m_addBtn

    def deleteBtn(self):
        return self.m_deleteBtn

    def clearAllBtn(self):
        return self.m_clearAllBtn

    def browseBtn(self):
        return self.m_browseBtn

    def editBtn(self):
        return self.m_editBtn

    def pdfBtn(self):
        return self.m_pdfBtn

    def htmlBtn(self):
        return self.m_htmlBtn

    def textBtn(self):
        return self.m_textBtn

    def table(self):
        return self.m_table
Esempio n. 2
0
class SideMenu(QWidget):
    SCAN_BUTTON = 0
    VIEW_BUTTON = 1
    WRITE_BUTTON = 2

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

        self.initUI()

    def initUI(self):
        self.centralFrame = QFrame(self)

        self.sizePolicy = QSizePolicy(QSizePolicy.Preferred,
                                      QSizePolicy.Preferred)
        self.sizePolicy.setHorizontalStretch(0)
        self.sizePolicy.setVerticalStretch(0)
        self.sizePolicy.setHeightForWidth(
            self.centralFrame.sizePolicy().hasHeightForWidth())

        self.centralFrame.setSizePolicy(self.sizePolicy)
        self.centralFrame.setFrameShape(QFrame.NoFrame)
        self.centralFrame.setFrameShadow(QFrame.Raised)
        self.centralFrame.setMinimumSize(QSize(70, 0))
        self.centralFrame.setMaximumSize(QSize(70, 16777215))
        self.centralFrame.setLayoutDirection(Qt.LeftToRight)
        self.centralFrame.setStyleSheet(u"background-color: rgb(27, 29, 35);")

        self.logoFrame = QFrame(self.centralFrame)
        self.logoFrame.setFrameShape(QFrame.NoFrame)
        self.logoFrame.setFrameShadow(QFrame.Raised)
        self.logoFrame.setContentsMargins(0, 0, 0, 0)
        self.logoFrame.setStyleSheet("border: none;")

        self.logoWidget = Logo(self.logoFrame)

        self.logoLayout = QHBoxLayout(self.logoFrame)
        self.logoLayout.setAlignment(Qt.AlignCenter)
        self.logoLayout.addWidget(self.logoWidget)

        self.btnsFrame = QFrame(self.centralFrame)
        self.btnsFrame.setFrameShape(QFrame.NoFrame)
        self.btnsFrame.setFrameShadow(QFrame.Raised)
        self.btnsFrame.setContentsMargins(0, 0, 0, 0)
        self.btnsFrame.setStyleSheet("border: none;")

        self.networkBtn = MenuButton(self.btnsFrame)
        self.networkBtn.setIcon(QIcon(
            resource_path("icons/cil-wifi-signal-1")))
        self.networkBtn.setToolTip("Scan for Devices")

        self.viewBtn = MenuButton(self.btnsFrame)
        self.viewBtn.setIcon(QIcon(resource_path("icons/cil-speedometer")))
        self.viewBtn.setToolTip("View Device Measurements")

        self.writeBtn = MenuButton(self.btnsFrame)
        self.writeBtn.setIcon(QIcon(resource_path("icons/cil-transfer")))
        self.writeBtn.setToolTip("Output Device Measurements")

        self.btnsLayout = QVBoxLayout(self.btnsFrame)
        self.btnsLayout.addWidget(self.networkBtn)
        self.btnsLayout.addWidget(self.viewBtn)
        self.btnsLayout.addWidget(self.writeBtn)
        self.btnsLayout.setContentsMargins(0, 0, 0, 0)

        self.centralLayout = QVBoxLayout(self.centralFrame)
        self.centralLayout.addWidget(self.logoFrame,
                                     stretch=.5,
                                     alignment=Qt.AlignTop)
        self.centralLayout.addWidget(self.btnsFrame,
                                     stretch=4,
                                     alignment=Qt.AlignTop)
        self.centralLayout.setContentsMargins(0, 0, 0, 0)

        self.uiLayout = QHBoxLayout(self)
        self.uiLayout.addWidget(self.centralFrame)
        self.uiLayout.setContentsMargins(0, 0, 0, 0)

        self.setLayout(self.uiLayout)
Esempio n. 3
0
class Registered:
    def __init__(self, form_base_layout: QFormLayout):
        super(Registered, self).__init__()

        self.form_base_layout: QFormLayout = form_base_layout

    def setup_ui(self, containers: QFrame, plugins: Any):

        # parent_unregistered_frame
        self.parent_registered_frame = QFrame(containers)
        self.parent_registered_frame.setFrameShape(QFrame.StyledPanel)
        self.parent_registered_frame.setFrameShadow(QFrame.Raised)
        self.parent_registered_frame.setContentsMargins(0, 45, 0, 0)

        # parent_vl_unregistered_frame
        self.parent_vl_registered_frame = QVBoxLayout(
            self.parent_registered_frame)
        self.parent_vl_registered_frame.setContentsMargins(30, 30, 30, 30)
        self.parent_vl_registered_frame.setObjectName("vl_registered_frame")

        # registered_frame
        self.registered_frame = QFrame(self.parent_registered_frame)
        self.registered_frame.setMinimumSize(QSize(0, 500))
        self.registered_frame.setMaximumSize(QSize(16777215, 16777215))
        self.registered_frame.setObjectName(
            RegisteredStyles.registered_frame_style[0])
        self.registered_frame.setStyleSheet(
            RegisteredStyles.registered_frame_style[1])
        self.registered_frame.setFrameShape(QFrame.StyledPanel)
        self.registered_frame.setLayoutDirection(Qt.LeftToRight)
        self.registered_frame.setFrameShadow(QFrame.Raised)
        # vl_registered_frame
        self.vl_registered_frame = QVBoxLayout(self.registered_frame)
        self.vl_registered_frame.setContentsMargins(30, 30, 30, 30)
        self.vl_registered_frame.setObjectName("vl_registered_frame")
        # Add ScrollView
        self.scroll_area = QScrollArea(self.registered_frame)
        self.scroll_area.setObjectName(RegisteredStyles.scroll_area_style[0])
        self.scroll_area.setStyleSheet(RegisteredStyles.scroll_area_style[1])
        self.scroll_area.setWidgetResizable(True)
        self.scroll_area_contents = QWidget()
        self.scroll_area_contents.setGeometry(QRect(0, 0, 1080, 344))
        self.scroll_area_contents.setObjectName(
            "scroll_area_contents_page_containers")
        # Add Vlayout ScroolView
        self.vlayout_scroll_view = QVBoxLayout(self.scroll_area_contents)
        self.vlayout_scroll_view.setObjectName("vlayout_scroll_view")
        # frame_containers_items_registered
        self.frame_containers_items_registered = QFrame(
            self.scroll_area_contents)
        self.frame_containers_items_registered.setFrameShape(
            QFrame.StyledPanel)
        self.frame_containers_items_registered.setFrameShadow(QFrame.Raised)
        self.frame_containers_items_registered.setObjectName(
            "frame_containers_items_registered")
        self.vl_registered_frame.addWidget(
            self.frame_containers_items_registered)

        self.regestered_frame_gridLayout = QGridLayout(
            self.frame_containers_items_registered)
        self.regestered_frame_gridLayout.setSpacing(24)
        self.regestered_frame_gridLayout.setObjectName(
            "regestered_frame_gridLayout")

        # lbl_registered
        self.lbl_registered = QLabel(self.parent_registered_frame)
        self.lbl_registered.setGeometry(QRect(75, 15, 141, 32))

        # self.lbl_registered.setMinimumSize(QSize(91, 32))
        # self.lbl_registered.setObjectName(RegisteredStyles.lbl_registered_style[0])
        # self.lbl_registered.setStyleSheet(RegisteredStyles.lbl_registered_style[1])
        # self.lbl_registered.setAlignment(Qt.AlignCenter)
        # self.lbl_registered.setText("REGISTERED")

        start_index = box_primitive().create_box(
            containers=self.frame_containers_items_registered,
            frame_gridLayout=self.regestered_frame_gridLayout,
            plugins=plugins)
        # box_primitive().create_box(
        #     containers=self.frame_containers_items_registered, count_box=5,
        #     start_index=start_index, frame_gridLayout=self.regestered_frame_gridLayout,
        #     box_type=False
        # )

        del start_index

        self.vlayout_scroll_view.addWidget(
            self.frame_containers_items_registered, 0, Qt.AlignLeft)
        self.scroll_area.setWidget(self.scroll_area_contents)
        self.vl_registered_frame.addWidget(self.scroll_area)
        self.parent_vl_registered_frame.addWidget(self.registered_frame)
        self.form_base_layout.setWidget(1, QFormLayout.SpanningRole,
                                        self.parent_registered_frame)