Esempio n. 1
0
  def _draw_profile(self, profile, is_selected, layout):
    profile_widget = QFrame()
    profile_widget.setMinimumSize(400, 55)
    profile_widget.setMaximumSize(400, 55)
    if is_selected:
      profile_widget.setStyleSheet("QFrame {background-color: rgb(200,200,255);}")
    else:
      profile_widget.setStyleSheet("QFrame {background-color: rgb(200,200,200);}")

    profile_insides = QHBoxLayout()
    profile_widget.setLayout(profile_insides)

    title_and_description_layout = QVBoxLayout()

    title = QLabel(cutoff_string(profile.name, 30))
    title.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
    title.setMaximumSize(200, 20)
    title.setMinimumSize(200, 20)
    title_and_description_layout.addWidget(title)

    desc = QLabel(cutoff_string(profile.description, 50))
    desc.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignBottom)
    desc.setMaximumSize(350, 20)
    desc.setMinimumSize(350, 20)
    title_and_description_layout.addWidget(desc)

    title_and_description_layout.addSpacerItem(QSpacerItem(40, 40, QSizePolicy.MinimumExpanding))

    profile_insides.addLayout(title_and_description_layout)

    layout.addWidget(profile_widget)

    return profile_widget
Esempio n. 2
0
    def _InitUI(self):
        self.setWindowTitle("搜索")
        self.setWindowFlags(Qt.Popup | Qt.Sheet)
        vBox = QVBoxLayout(self)
        hBox = QHBoxLayout()
        self.m_Search = QLineEdit(self)
        self.m_Search.setFocusPolicy(Qt.ClickFocus)
        self.m_Search.setClearButtonEnabled(True)
        self.m_Search.setPlaceholderText("搜索节点或者槽名称")
        hBox.addWidget(self.m_Search)

        self.m_BtnMatch = QPushButton("全匹配", self)
        self.m_BtnMatch.setToolTip("点击切换全匹配/模糊匹配")
        hBox.addWidget(self.m_BtnMatch)

        vBox.addLayout(hBox)

        line = QFrame(self)
        line.setMinimumSize(QSize(0, 2))
        line.setMaximumSize(QSize(1234567, 2))
        line.setFrameShape(QFrame.HLine)
        line.setFrameShadow(QFrame.Sunken)
        vBox.addWidget(line)

        self.m_Tree = QTreeView(self)
        self.m_Tree.setHeaderHidden(True)
        self.m_Tree.setModel(QStandardItemModel(self))
        self.m_Tree.setEditTriggers(QAbstractItemView.NoEditTriggers)
        vBox.addWidget(self.m_Tree)
Esempio n. 3
0
    def drawTop(self):
        topFrame = QFrame(self)
        topFrame.resize(self.width(), self.height() / 4)
        topFrame.setMinimumSize(self.width(), self.height() / 4)
        topFrame.setMaximumSize(self.width(), self.height() / 4 + 1)
        topFrame.setStyleSheet("background-color:yellow")
        imageLabel = QLabel(topFrame)
        image = QPixmap("ressources/logotl.svg")
        imageLabel.setPixmap(image)
        imageLabel.show()

        #top UI
        layoutTop = QHBoxLayout()
        layoutTop.setAlignment(Qt.AlignVCenter)
        font = QFont("Times new roman", 25)
        self.name = QLabel('tl-live', self)
        self.name.setAlignment(Qt.AlignRight)
        self.name.setFont(font)
        self.name.setStyleSheet("color:blue")

        layoutTop.addWidget(imageLabel)
        layoutTop.addWidget(self.name)
        layoutTop.setAlignment(self.name, Qt.AlignVCenter)

        topFrame.setLayout(layoutTop)
        topFrame.show()
Esempio n. 4
0
    def layout(self):
        frame = QFrame()
        frame.setFrameShape(QFrame.StyledPanel)
        self.__layout = QVBoxLayout()
        self.__layout.addLayout(self.__setting_box)
        self.__layout.addLayout(self.__statistics_box)
        self.__layout.addStretch(1)
        self.__layout.setSpacing(10)
        frame.setLayout(self.__layout)
        frame.setMaximumSize(560, 126)

        layout = QVBoxLayout()
        layout.addWidget(frame)

        return layout
Esempio n. 5
0
    def _draw_article(self, layout, article: Article) -> QWidget:
        article_widget = QFrame()
        article_widget.setMinimumSize(400, 55)
        article_widget.setMaximumSize(400, 55)
        article_widget.setStyleSheet(
            "QFrame {background-color: rgb(200,200,200);}")

        article_insides = QHBoxLayout()
        article_widget.setLayout(article_insides)

        title_and_url_layout = QVBoxLayout()

        title = QLabel(cutoff_string(article.name, 50))
        title.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
        title.setMaximumSize(270, 20)
        title.setMinimumSize(270, 20)
        title_and_url_layout.addWidget(title)

        url = QLabel(cutoff_string(article.url, 50))
        url.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignBottom)
        url.setMaximumSize(270, 20)
        url.setMinimumSize(270, 20)
        title_and_url_layout.addWidget(url)

        title_and_url_layout.addSpacerItem(
            QSpacerItem(40, 40, QSizePolicy.MinimumExpanding))

        reading_time_layout = QVBoxLayout()
        add_spacer(reading_time_layout)
        read_time = QLabel("{} minutes".format(article.reading_time))
        read_time.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTop)
        read_time.setMaximumSize(100, 15)
        read_time.setMinimumSize(100, 15)
        reading_time_layout.setAlignment(QtCore.Qt.AlignRight
                                         | QtCore.Qt.AlignTop)
        reading_time_layout.addWidget(read_time)
        reading_time_layout.addSpacerItem(
            QSpacerItem(1, 40, QSizePolicy.MinimumExpanding))

        article_insides.addLayout(title_and_url_layout)
        article_insides.addLayout(reading_time_layout)

        layout.addWidget(article_widget)

        return article_widget
Esempio n. 6
0
 def genBuilds(self):
     scBuilds = QScrollArea()
     scBuilds.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
     scBuilds.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
     scBuildsVLB = QVBoxLayout()
     for i in reversed(range(scBuildsVLB.count())):
         scBuildsVLB.itemAt(i).widget().setParent(None)
     for language in c.execute("SELECT languageName FROM languages ORDER BY languageName ASC"):
         gb = QGroupBox(language[0])
         gb.setMinimumSize(360, 50)
         gb.setMaximumWidth(360)
         vlb = QVBoxLayout()
         vlb.setContentsMargins(3,3,3,3)
         vlb.setSpacing(3)
         c1 = conn.cursor()
         for build in c1.execute("SELECT * FROM builds WHERE buildLanguage = ?", (language[0],)):
             print(build)
             frame = QFrame()
             hlb = QHBoxLayout()
             frame.setMaximumSize(360, 20)
             hlb.setContentsMargins(5,0,0,0)
             hlb.setSpacing(6)
             btnBuild = QPushButton("Build")
             btnBuild.setMaximumSize(50, 20)
             btnBuild.clicked.connect(lambda checked, buildID=build[0]: self.runBuild(buildID))
             lblBuildName = QLabel(build[1])
             lblBuildName.setMaximumSize(233,20)
             lblBuildLanguage = QLabel(build[2])
             lblBuildLanguage.setMaximumSize(60, 20)
             hlb.addWidget(lblBuildName)
             hlb.addWidget(lblBuildLanguage)
             hlb.addWidget(btnBuild)
             frame.setLayout(hlb)
             vlb.addWidget(frame)
         gb.setLayout(vlb)
         scBuildsVLB.addWidget(gb)
     scBuildsVLB.addStretch()
     scBuilds.setLayout(scBuildsVLB)
     self.Main.uiMain.gridLayout_2.addChildWidget(scBuilds)
Esempio n. 7
0
    def decorate(splitter: QSplitter, index: int = 1):

        gripLength = 35
        gripWidth = 1  # may need to be 1 or 2 depending on theme
        gripSpacing = 0
        grips = 3

        splitter.setOpaqueResize(False)
        splitter.setChildrenCollapsible(False)
        splitter.setHandleWidth(7)
        handle = splitter.handle(index)
        orientation = splitter.orientation()
        layout = QHBoxLayout(handle)
        layout.setSpacing(gripSpacing)
        layout.setContentsMargins(0, 0, 0, 0)

        if orientation == Qt.Horizontal:
            for i in range(grips):
                line = QFrame(handle)
                line.setMinimumSize(gripWidth, gripLength)
                line.setMaximumSize(gripWidth, gripLength)
                line.setLineWidth(gripWidth)
                line.setFrameShape(line.StyledPanel)
                line.setStyleSheet("border: 1px solid lightgray;")
                layout.addWidget(line)
        else:
            # center the vertical grip by adding spacers before and after
            layout.addStretch()
            vBox = QVBoxLayout()

            for i in range(grips):
                line = QFrame(handle)
                line.setMinimumSize(gripLength, gripWidth)
                line.setMaximumSize(gripLength, gripWidth)
                line.setFrameShape(line.StyledPanel)
                line.setStyleSheet("border: 1px solid lightgray;")
                vBox.addWidget(line)
            layout.addLayout(vBox)
            layout.addStretch()
Esempio n. 8
0
    def _create_style_view(self, style_path, path_to_icon, style_name):
        pixmap = self._read_input_pixmap(path_to_icon)
        if pixmap is not None:

            # create a scene which will handle the graphical image
            scene = QGraphicsScene(self)
            scene.addPixmap(pixmap)

            # create the the widget which will display the image
            graphics_view = SelectableGraphicsView(scene, self, style_path, path_to_icon)

            # set its maximum size to 100 by 100 pixels
            graphics_view.setMaximumSize(QSize(90, 90))

            # set the size policy to fixed so the widgets wont change their size
            size_policy = QSizePolicy()
            size_policy.setHorizontalPolicy(QSizePolicy.Fixed)
            size_policy.setVerticalPolicy(QSizePolicy.Fixed)
            graphics_view.setSizePolicy(size_policy)

            # disable the scrollbars for the graphics view
            graphics_view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
            graphics_view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

            # display the widget with a label indicating the stlye name
            frame = QFrame(self.ui.scrollArea)
            vertical_layout = QVBoxLayout(frame)
            frame.setLayout(vertical_layout)
            frame.setMaximumSize(QSize(120, 150))
            vertical_layout.addWidget(graphics_view)
            title_label = QLabel(style_name, frame)
            title_label.setAlignment(Qt.AlignHCenter)
            vertical_layout.addWidget(title_label)
            self.ui.horizontalLayout_2.addWidget(frame)

            # connect the signal and slots
            graphics_view.on_focus.connect(self._style_selector)

            return graphics_view
Esempio n. 9
0
    def createBox(self):
        box = QFrame(self)
        #box.setMinimumSize(self.width(), self.height()/3)
        box.setMaximumSize(self.width(), self.height() / 3)
        box.setStyleSheet("background-color:yellow")
        box.setAutoFillBackground(True)
        box.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        box.setStyleSheet("background-color:#f5f5ef")
        box.setFrameShape(QFrame.Box)

        font = QFont("Times new roman", 15)

        layout = QVBoxLayout(box)
        layout.setContentsMargins(5, 0, 0, 5)

        date = QLabel('', box)
        date.setObjectName('date')
        date.setFont(font)
        date.setStyleSheet("font-weight: bold;")

        name = QLabel('', box)
        name.setObjectName('name')
        name.setFont(font)

        layout.addWidget(date)
        layout.addWidget(name)
        layout.setAlignment(date, Qt.AlignTop)
        layout.setAlignment(name, Qt.AlignBottom)

        box.setLayout(layout)

        self.layout.addWidget(box)
        #layout.setAlignment(box,Qt.AlignTop)
        box.hide()

        return box
Esempio n. 10
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)
Esempio n. 11
0
class App(QMainWindow):
    """
    The UI App class
    Pass an instance into your IFPGame object
    """
    def __init__(self):
        """
        Initialize the GUI

        Styling for the Qt GUI is also defined in here.
        Feel free to change and adapt it as you see fit.
        """
        super().__init__()

        # self.icon = None
        # self.setWindowIcon(QIcon(self.icon))

        self.setObjectName("MainWindow")

        self.title = "IntFicPy"
        self.left = 10
        self.top = 10
        self.width = 640
        self.height = 480

        self.box_style1 = ("color: black; "
                           "background-color: #d3e56b; "
                           "border: none; "
                           "border-radius:20px; "
                           "margin-bottom: 15px")
        self.box_style2 = ("color: black; "
                           "background-color: #6be5cb; "
                           "border: none; "
                           "border-radius:20px; "
                           "margin-bottom: 15px")
        self.scroll_style = """
            /* VERTICAL */
            QWidget {
            	background: #efefef; 
            }
            QScrollBar:vertical {
                border: none;
                background: #a3a3a3;
                border-radius: 6px;
                width: 30px;
                margin: 10px 8px 10px 8px;
            }

            QScrollBar::handle:vertical {
                background: #d0d0d0;
                border-radius: 6px;
                min-height: 15px;
            }

            QScrollBar::add-line:vertical {
                background: none;
                height: 10px;
                subcontrol-position: bottom;
                subcontrol-origin: margin;
            }

            QScrollBar::sub-line:vertical {
                background: none;
                height: 10px;
                subcontrol-position: top left;
                subcontrol-origin: margin;
                position: absolute;
            }

            QScrollBar:up-arrow:vertical, QScrollBar::down-arrow:vertical {
                background: none;
            }

            QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
                background: none;
            }
        """
        self.initUI()
        self.showMaximized()
        self.game = None

    def initUI(self):
        """
        Build the basic user interface
        """
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # self.widget.resize(self.width, self.height)
        # self.widget.setLayout(self.main_layout)

        #   Container Widget
        self.widget = QWidget()
        self.setCentralWidget(self.widget)
        self.main_layout = QVBoxLayout()
        self.widget.setLayout(self.main_layout)

        # TextBox
        self.textbox = QLineEdit()
        self.textbox.resize(280, 30)

        #   Scroll Area Properties
        self.scroll_container = QWidget()
        self.scroll_container_layout = QVBoxLayout(self.scroll_container)

        self.scroll_widget = QWidget()
        self.scroll_widget_layout = QVBoxLayout()
        self.scroll_widget_layout.setContentsMargins(15, 15, 15, 30)
        self.scroll_widget.setLayout(self.scroll_widget_layout)

        self.scroll = QScrollArea()
        self.scroll.setFrameShape(QFrame.Box)
        self.scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.scroll_widget)
        self.scroll_container_layout.addWidget(self.scroll)

        self.scroll_widget_layout.setAlignment(QtCore.Qt.AlignTop)

        self.main_layout.addWidget(self.scroll_container)
        self.main_layout.addWidget(self.textbox)
        self.main_layout.setContentsMargins(10, 10, 10, 10)

        self.scroll_container.setStyleSheet(self.scroll_style)

        self.cutscene = []
        self.anykeyformore = False

    def send_turn_input(self):
        """
        Send player input to the game, and clear the input field
        """
        textboxValue = self.textbox.text()
        self.textbox.setText("")
        self.game.turnMain(textboxValue)

    def keyPressEvent(self, event):
        """
        Handle key press events
        
        Enter - send turn input
        Up - move backward through command history
        Down - move forward through command history
        """
        if event.key() == QtCore.Qt.Key_Up:
            self.textbox.setText(self.game.getCommandUp())

        elif event.key() == QtCore.Qt.Key_Down:
            self.textbox.setText(self.game.getCommandDown())

        elif event.key() == QtCore.Qt.Key_Return and len(
                self.textbox.text()) > 0:
            self.send_turn_input()

    def printEventText(self, event):
        """
        Prints game output to the GUI, and scrolls down
        Takes a single argument event, the event to print
        """
        self.obox = QFrame()
        self.obox.setFrameStyle(QFrame.StyledPanel)
        self.obox.setStyleSheet(event.style)

        self.scroll_widget_layout.addWidget(self.obox)
        self.olayout = QVBoxLayout()
        self.obox.setLayout(self.olayout)

        for t in event.text:
            out = QLabel()
            out.setText(t)
            self.olayout.addWidget(out)
            out.setWordWrap(True)
            out.setStyleSheet("margin-bottom: 5px")
            out.setMaximumSize(out.sizeHint())
            out.setMinimumSize(out.sizeHint())

        self.obox.setMaximumSize(self.obox.sizeHint())
        self.obox.setMinimumSize(self.obox.sizeHint())
        vbar = self.scroll.verticalScrollBar()
        vbar.rangeChanged.connect(lambda: vbar.setValue(vbar.maximum()))

    def saveFilePrompt(self, extension, filetype_desc, msg):
        """
        Create a prompt to save a file
        Used for saving the game, and creating recordings
        """
        cwd = os.getcwd()
        fname = QFileDialog.getSaveFileName(self, msg, cwd,
                                            f"{filetype_desc} (*{extension})")
        fname = fname[0]
        if len(fname) == 0:
            return None

        if fname.endswith(extension):
            return fname

        if "." in fname:
            fname = fname[:fname.index(".")]

        return fname + extension

    def openFilePrompt(self, extension, filetype_desc, msg):
        """
        Create a prompt to open a file
        Used for loading save files and playing back recordings
        """
        cwd = os.getcwd()
        fname = QFileDialog.getOpenFileName(self, msg, cwd,
                                            f"{filetype_desc} (*{extension})")
        if not fname[0].endswith(extension):
            return None

        return fname[0]
Esempio n. 12
0
class ExportAnimPanel(QVBoxLayout):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.previewImage = None
        self.parent = parent
        self.base_path = settings.ROOT
        self.screenshot = None
        self.createWidget()

    def createWidget(self):
        #self.mainLayout = QVBoxLayout()
        self.setContentsMargins(12, 6, 6, 6)
        self.setSpacing(8)

        self.previewImagePanel = QFrame()
        self.previewImageLayout = QVBoxLayout()
        self.previewImagePanel.setLayout(self.previewImageLayout)
        self.previewImagePanel.setMinimumSize(230, 230)
        self.previewImagePanel.setMaximumSize(230, 230)
        #­self.previewImage.setSizePolicy(QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred))
        self.previewImagePanel.setStyleSheet(
            "border-style : dashed;border-width : 2px; border-color:rgb(60,60,60);background-color : rgb(100,100,100);"
        )
        self.previewImageLayout.setContentsMargins(0, 0, 0, 0)
        #self.previewImageLayout.setSpacing(0)

        # Action Name
        self.actionName = LineEdit()
        self.actionNameLayout = QHBoxLayout()
        self.actionNameLayout.addWidget(Label(text='Name :'))
        self.actionNameLayout.addWidget(self.actionName)

        # Category Name
        self.model = QStringListModel()
        self.model.setStringList(['pose', 'mains', 'expressions', 'cycle'])
        self.cat_completer = QCompleter()
        self.cat_completer.setCompletionMode(
            QCompleter.UnfilteredPopupCompletion)
        self.cat_completer.setModel(self.model)

        self.categoryName = LineEdit()
        self.categoryName.setCompleter(self.cat_completer)
        self.categoryNameLayout = QHBoxLayout()

        self.categoryNameLayout.addWidget(Label(text='Category :'))
        self.categoryNameLayout.addWidget(self.categoryName)

        # Frame Range
        self.frameRangeLayout = QHBoxLayout()

        self.frameRangeIn = SpinBox()
        self.frameRangeIn.setValue(bpy.context.scene.frame_current)
        self.frameRangeIn.setMaximum(10000)
        self.frameRangeIn.valueChanged.connect(lambda: self.update_number())

        self.frameRangeOut = SpinBox()
        self.frameRangeOut.setValue(bpy.context.scene.frame_current)
        self.frameRangeOut.setMaximum(10000)
        self.frameRangeOut.valueChanged.connect(lambda: self.update_number())

        self.frameRangeLayout.addWidget(Label(text='Frame Range :'))
        self.frameRangeLayout.addWidget(self.frameRangeIn)
        self.frameRangeLayout.addWidget(self.frameRangeOut)

        #animation_step
        self.animationSettingsLayout = QHBoxLayout()
        self.step = SpinBox()
        self.step.setValue(2)
        self.step.setMinimum(1)
        self.step.valueChanged.connect(lambda: self.update_number())

        self.imgNumber = Label()
        self.imgNumber.setText(self.update_number())

        self.animationSettingsLayout.addWidget(Label(text='Step :'))
        self.animationSettingsLayout.addWidget(self.step)
        self.animationSettingsLayout.addWidget(Label(text='Number:'))
        self.animationSettingsLayout.addWidget(self.imgNumber)

        #option
        self.optionLayout = QHBoxLayout()
        self.only_selected = CheckBox('Selected Only')
        self.bezier = CheckBox('Bezier')
        self.mirror_pose = CheckBox('Mirror Pose')
        self.optionLayout.addWidget(self.only_selected)
        self.optionLayout.addWidget(self.bezier)
        self.optionLayout.addWidget(self.mirror_pose)

        # tools layout
        self.toolsLayout = QHBoxLayout()
        horizontalSpacer = QSpacerItem(128, 20, QSizePolicy.Expanding,
                                       QSizePolicy.Minimum)
        verticalSpacer = QSpacerItem(20, 16, QSizePolicy.Minimum,
                                     QSizePolicy.Expanding)
        self.toolsLayout.addItem(horizontalSpacer)
        #thumbnail button
        self.btn_thumbnail = PushButton(icon=icon_path('ICON_RENDER_REGION'),
                                        size=[24, 24])
        self.btn_thumbnail.clicked.connect(self.set_thumbnail)
        #ok_button
        self.btn_ok = PushButton(text='OK')
        self.btn_ok.clicked.connect(self.ok)
        #cancel_button
        self.btn_cancel = PushButton(text='Cancel')
        self.btn_cancel.clicked.connect(self.cancel)

        self.toolsLayout.addWidget(self.btn_thumbnail)
        self.toolsLayout.addWidget(self.btn_ok)
        self.toolsLayout.addWidget(self.btn_cancel)

        # Adding layout to main Widget
        self.addWidget(self.previewImagePanel)
        self.addLayout(self.actionNameLayout)
        self.addLayout(self.categoryNameLayout)
        self.addLayout(self.frameRangeLayout)
        self.addLayout(self.animationSettingsLayout)
        self.addLayout(self.optionLayout)
        self.addItem(verticalSpacer)
        self.addLayout(self.toolsLayout)

    def update_number(self):
        img_frame = round(
            (int(self.frameRangeOut.text()) - int(self.frameRangeIn.text())) /
            int(self.step.text()))

        self.imgNumber.setText(str(img_frame))

    def ok(self):
        path = os.path.join(self.base_path, self.asset,
                            self.categoryName.text(), self.actionName.text())
        thumb_path = os.path.join(path,
                                  self.actionName.text() + '_thumbnail.jpg')

        action = store_anim(int(self.frameRangeIn.text()),
                            int(self.frameRangeOut.text()),
                            self.only_selected.isChecked(),
                            self.bezier.isChecked(),
                            self.mirror_pose.isChecked())

        write_anim(path, self.actionName.text(), action)

        description = open(
            os.path.join(path,
                         self.actionName.text() + '_description.txt'), 'w')

        if self.previewImage.pixmap():
            self.previewImage.pixmap().save(thumb_path, 'jpg', 75)

    def cancel(self):
        bar = TitleBar(parent=self.parent)
        TitleBar.show()
        ('print cancel')

    def show_completion(self):
        self.setPopup(QAbstractItemView())

    def set_thumbnail(self):
        active_ob = bpy.context.scene.objects.active
        clear_layout(self.previewImageLayout)
        '''
        #for all 3d view show only render set to true
        view_settings={}
        view_settings['VIEW_3D'] = {}
        view_settings['bg_color'] = bpy.context.user_preferences.themes['Default'].view_3d.space.gradients.high_gradient
        bpy.context.user_preferences.themes['Default'].view_3d.space.gradients.high_gradient = (0.5,0.5,0.5)

        for index,area in enumerate(bpy.context.window_manager.windows[0].screen.areas) :
            if area.type == 'VIEW_3D' :
                only_render = area.spaces[0].show_only_render
                world = area.spaces[0].show_world

                view_settings['VIEW_3D'][index] = [only_render,world]
                area.spaces[0].show_only_render = True
                area.spaces[0].show_world = True
        '''

        main = Rubb(parent=self.parent)
        main.fullScreenLabel.show()

        if active_ob and active_ob.type == 'ARMATURE':
            if active_ob.proxy_group:
                self.asset = active_ob.proxy_group.name

            else:
                self.asset = active_ob.name
Esempio n. 13
0
class TopNavigationBarContainers(GUIObserver):

    def on_message(self, message: dict):
        self.location_box.setText(str(message["data"]["value"]).split('-')[2])

    @property
    def class_name(self):
        return GUIClassNames.TOP_NAVIGATION_BAR_CONTAINERS

    def __init__(self, gui_concentrate_handler):
        gui_concentrate_handler.attach(self)

        super(TopNavigationBarContainers, self).__init__()

    def setup_ui(self, containers: QFrame, main_gridLayout: QGridLayout):
        self.frame_location_box = QFrame(containers)
        self.frame_location_box.setFrameShape(QFrame.StyledPanel)
        self.frame_location_box.setFrameShadow(QFrame.Raised)
        self.frame_location_box.setObjectName("frame_location_box")

        self.vlayout_location_box = QVBoxLayout(self.frame_location_box)
        self.vlayout_location_box.setContentsMargins(0, 0, 71, 0)
        self.vlayout_location_box.setObjectName("vlayout_location_box")
        self.location_box = QLabel(self.frame_location_box)
        self.location_box.setText("MainPage")
        self.location_box.setCursor(QCursor(Qt.PointingHandCursor))
        self.location_box.setObjectName(TopNavigationBarContainersStyles.location_box_style[0])
        self.location_box.setStyleSheet(TopNavigationBarContainersStyles.location_box_style[1])
        self.location_box.setAlignment(Qt.AlignCenter)
        self.location_box.setOpenExternalLinks(False)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.location_box.sizePolicy().hasHeightForWidth())
        self.location_box.setSizePolicy(sizePolicy)
        self.location_box.setMinimumSize(QSize(370, 33))
        self.location_box.setMaximumSize(QSize(370, 33))
        del sizePolicy
        self.vlayout_location_box.addWidget(self.location_box, 0, Qt.AlignHCenter)
        main_gridLayout.addWidget(self.frame_location_box, 0, 2, 1, 1)

        self.components_frame = QFrame(containers)
        self.components_frame.setMinimumSize(QSize(181, 51))
        self.components_frame.setMaximumSize(QSize(181, 51))
        self.components_frame.setFrameShape(QFrame.StyledPanel)
        self.components_frame.setFrameShadow(QFrame.Raised)
        self.components_frame.setObjectName("components_frame")

        self.item_user = QLabel(self.components_frame)
        self.item_user.setGeometry(QRect(0, 10, 34, 34))
        self.item_user.setCursor(QCursor(Qt.PointingHandCursor))
        self.item_user.setAccessibleName(TopNavigationBarContainersStyles.item_notification_style[0])
        self.item_user.setStyleSheet(TopNavigationBarContainersStyles.item_notification_style[1])
        self.item_user.setPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/user_logo.svg"))
        self.item_user.setAlignment(Qt.AlignCenter)
        self.item_user.setObjectName("item_user")

        self.item_message = QLabel(self.components_frame)
        self.item_message.setObjectName("item_message")
        self.item_message.setStyleSheet(TopNavigationBarContainersStyles.item_notification_style[1])
        self.item_message.setGeometry(QRect(95, 10, 34, 34))
        self.item_message.setCursor(QCursor(Qt.PointingHandCursor))
        self.item_message.setPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/message_logo.svg"))
        self.item_message.setAlignment(Qt.AlignCenter)

        self.item_notification = QLabel(self.components_frame)
        self.item_notification.setGeometry(QRect(47, 10, 34, 34))
        self.item_notification.setCursor(QCursor(Qt.PointingHandCursor))
        self.item_notification.setAccessibleName(TopNavigationBarContainersStyles.item_notification_style[0])
        self.item_notification.setStyleSheet(TopNavigationBarContainersStyles.item_notification_style[1])
        self.item_notification.setPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/notification_logo.svg"))
        self.item_notification.setAlignment(Qt.AlignCenter)
        self.item_notification.setObjectName("item_notification")

        self.item_search = QLabel(self.components_frame)
        self.item_search.setObjectName("item_search")
        self.item_search.setGeometry(QRect(142, 10, 34, 34))
        self.item_search.setCursor(QCursor(Qt.PointingHandCursor))
        self.item_search.setAccessibleName(TopNavigationBarContainersStyles.item_notification_style[0])
        self.item_search.setStyleSheet(TopNavigationBarContainersStyles.item_notification_style[1])
        self.item_search.setPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/search_logo.svg"))
        self.item_search.setAlignment(Qt.AlignCenter)

        self.lbl_number_of_message = QLabel(self.components_frame)
        self.lbl_number_of_message.setGeometry(QRect(110, 5, 31, 26))
        self.lbl_number_of_message.setText("+25")
        self.lbl_number_of_message.setAlignment(Qt.AlignCenter)
        self.lbl_number_of_message.setObjectName(TopNavigationBarContainersStyles.notify_number_of_box_style[0])
        self.lbl_number_of_message.setStyleSheet(TopNavigationBarContainersStyles.notify_number_of_box_style[1])

        self.lbl_number_of_notification = QLabel(self.components_frame)
        self.lbl_number_of_notification.setGeometry(QRect(60, 5, 31, 26))
        self.lbl_number_of_notification.setText("+99")
        self.lbl_number_of_notification.setAlignment(Qt.AlignCenter)
        self.lbl_number_of_notification.setObjectName(TopNavigationBarContainersStyles.notify_number_of_box_style[0])
        self.lbl_number_of_notification.setStyleSheet(TopNavigationBarContainersStyles.notify_number_of_box_style[1])

        main_gridLayout.addWidget(self.components_frame, 0, 0, 1, 1)
Esempio n. 14
0
class AddAsset(QVBoxLayout):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.previewImage = None
        self.parent = parent
        self.screenshot = None
        self.createWidget()

    def createWidget(self):
        #self.mainLayout = QVBoxLayout()
        self.setContentsMargins(12, 6, 6, 6)
        self.setSpacing(8)

        self.mainLayout = QVBoxLayout()

        #asset Type Choice
        self.assetType = ComboBox()
        self.assetType.currentIndexChanged.connect(self.set_layout)
        self.assetType.setSizePolicy(
            QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed))
        self.assetType.setStyleSheet(get_css("ComboBoxAsset"))
        for item, info in sorted(self.parent.asset_type.items()):
            self.assetType.addItem(QIcon(info['icon']),
                                   item.title().replace('_', ' '))

        self.assetTypeLayout = QHBoxLayout()
        self.assetTypeLayout.addWidget(Label(text='Type :'))
        self.assetTypeLayout.addWidget(self.assetType)

        self.addLayout(self.assetTypeLayout)

        self.addLayout(self.mainLayout)

    def set_layout(self):
        from .. import asset_managing as asset_managing
        assetType = self.assetType.currentText().lower().replace(' ', '_')

        store_func = self.parent.asset_type[assetType]['store'] + '_settings'

        module = getattr(asset_managing, assetType)

        clear_layout(self.mainLayout)

        print(self.assetType.currentText())

        self.previewImagePanel = QFrame()
        self.previewImageLayout = QVBoxLayout()
        self.previewImagePanel.setLayout(self.previewImageLayout)
        self.previewImagePanel.setMinimumSize(230, 230)
        self.previewImagePanel.setMaximumSize(230, 230)
        #­self.previewImage.setSizePolicy(QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred))
        self.previewImagePanel.setStyleSheet(
            "border-style : dashed;border-width : 2px; border-color:rgb(60,60,60);background-color : rgb(100,100,100);"
        )
        self.previewImageLayout.setContentsMargins(0, 0, 0, 0)
        #self.previewImageLayout.setSpacing(0)

        # Asset Name
        self.assetName = LineEdit()
        self.assetNameRow = QHBoxLayout()
        self.assetNameRow.addWidget(Label(text='Name :'))
        self.assetNameRow.addWidget(self.assetName)

        # Category Completion
        #self.model = QStringListModel()
        #self.model.setStringList(['pose','mains','expressions','cycle'])
        #self.cat_completer = QCompleter()
        #self.cat_completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
        #self.cat_completer.setModel(self.model)

        # Category Name
        self.assetCategory = LineEdit()
        self.assetCategoryRow = QHBoxLayout()
        self.assetCategoryRow.addWidget(Label(text='Category :'))
        self.assetCategoryRow.addWidget(self.assetCategory)

        # tag List
        self.assetTags = LineEdit()
        self.assetTagsRow = QHBoxLayout()
        self.assetTagsRow.addWidget(Label(text='Tags :'))
        self.assetTagsRow.addWidget(self.assetTags)

        # Description
        self.assetDescription = QPlainTextEdit()
        self.assetDescription.setStyleSheet(get_css('LineEdit'))
        self.assetDescriptionRow = QHBoxLayout()
        self.assetDescriptionRow.addWidget(Label(text='Description :'))
        self.assetDescriptionRow.addWidget(self.assetDescription)

        # Adding layout to main Widget
        self.mainLayout.addWidget(self.previewImagePanel)
        self.mainLayout.addLayout(self.assetNameRow)
        self.mainLayout.addLayout(self.assetCategoryRow)
        self.mainLayout.addLayout(self.assetTagsRow)
        self.mainLayout.addLayout(self.assetDescriptionRow)

        #add settings per Asset type
        #getattr(asset_storing, store_func)(self)
        getattr(module, store_func)(self)

        # tools layout
        self.toolsLayout = QHBoxLayout()
        horizontalSpacer = QSpacerItem(128, 20, QSizePolicy.Expanding,
                                       QSizePolicy.Minimum)
        verticalSpacer = QSpacerItem(20, 16, QSizePolicy.Minimum,
                                     QSizePolicy.Expanding)
        self.toolsLayout.addItem(horizontalSpacer)
        #thumbnail button
        self.btn_thumbnail = PushButton(icon=icon_path('ICON_RENDER_REGION'),
                                        size=[24, 24])
        self.btn_thumbnail.clicked.connect(self.set_thumbnail)
        #ok_button
        self.btn_ok = PushButton(text='OK')
        self.btn_ok.clicked.connect(self.ok)
        #cancel_button
        self.btn_cancel = PushButton(text='Cancel')
        self.btn_cancel.clicked.connect(self.cancel)

        self.toolsLayout.addWidget(self.btn_thumbnail)
        self.toolsLayout.addWidget(self.btn_ok)
        #self.toolsLayout.addWidget(self.btn_cancel)

        self.mainLayout.addItem(verticalSpacer)
        self.mainLayout.addLayout(self.toolsLayout)

    def update_number(self):
        img_frame = round(
            (int(self.frameRangeOut.text()) - int(self.frameRangeIn.text())) /
            int(self.step.text()))

        self.imgNumber.setText(str(img_frame))

    def ok(self):
        from .. import asset_managing as asset_managing
        assetType = self.assetType.currentText().lower().replace(' ', '_')

        store_func = self.parent.asset_type[assetType]['store']

        module = getattr(asset_managing, assetType)
        getattr(module, store_func)(self)

        #store_func = settings['item_type'][assetType]['store']
        #getattr(asset_storing, store_func)(self)

        #store_func(self)
    def cancel(self):
        bar = TitleBar(parent=self.parent)
        TitleBar.show()
        ('print cancel')

    def show_completion(self):
        self.setPopup(QAbstractItemView())

    def set_thumbnail(self):
        active_ob = bpy.context.scene.objects.active
        clear_layout(self.previewImageLayout)
        '''
        #for all 3d view show only render set to true
        view_settings={}
        view_settings['VIEW_3D'] = {}
        view_settings['bg_color'] = bpy.context.user_preferences.themes['Default'].view_3d.space.gradients.high_gradient
        bpy.context.user_preferences.themes['Default'].view_3d.space.gradients.high_gradient = (0.5,0.5,0.5)

        for index,area in enumerate(bpy.context.window_manager.windows[0].screen.areas) :
            if area.type == 'VIEW_3D' :
                only_render = area.spaces[0].show_only_render
                world = area.spaces[0].show_world

                view_settings['VIEW_3D'][index] = [only_render,world]
                area.spaces[0].show_only_render = True
                area.spaces[0].show_world = True
        '''

        main = Rubb(parent=self.parent)
        main.fullScreenLabel.show()

        if active_ob and active_ob.type == 'ARMATURE':
            if active_ob.proxy_group:
                self.asset = active_ob.proxy_group.name

            else:
                self.asset = active_ob.name
Esempio n. 15
0
class Ui_MainWindow(object):
    def setupUi(self, main_window):

        main_window.setObjectName("mainWindow")
        main_window.resize(1024, 768)
        main_window.setMinimumSize(QSize(1024, 768))
        main_window.setToolButtonStyle(Qt.ToolButtonIconOnly)

        self.central_widget = QWidget(main_window)
        self.central_widget.setObjectName("central_widget")

        self.horizontalLayout = QHBoxLayout(self.central_widget)
        self.horizontalLayout.setObjectName("horizontalLayout")

        self.topDownSplitter = QSplitter(self.central_widget)
        self.topDownSplitter.setOrientation(Qt.Vertical)
        self.topDownSplitter.setOpaqueResize(True)
        self.topDownSplitter.setHandleWidth(5)
        self.topDownSplitter.setObjectName("topDownSplitter")

        self.leftRightSplitter = QSplitter(self.topDownSplitter)
        self.leftRightSplitter.setOrientation(Qt.Horizontal)
        self.leftRightSplitter.setObjectName("leftRightSplitter")

        self.leftPanel = QFrame(self.leftRightSplitter)

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

        self.leftPanel.setSizePolicy(sizePolicy)
        self.leftPanel.setMinimumSize(QSize(245, 550))
        self.leftPanel.setMaximumSize(QSize(245, 16777215))
        self.leftPanel.setFrameShape(QFrame.StyledPanel)
        self.leftPanel.setFrameShadow(QFrame.Raised)
        self.leftPanel.setObjectName("leftPanel")

        self.leftPanelVLayout = QVBoxLayout(self.leftPanel)
        self.leftPanelVLayout.setObjectName("leftPanelVLayout")

        self.colorPickerFrame = QFrame(self.leftPanel)
        self.colorPickerFrame.setMinimumSize(QSize(0, 0))
        self.colorPickerFrame.setMaximumSize(QSize(16777215, 16777215))
        self.colorPickerFrame.setFrameShape(QFrame.StyledPanel)
        self.colorPickerFrame.setFrameShadow(QFrame.Raised)
        self.colorPickerFrame.setObjectName("colorPickerFrame")

        self.leftPanelVLayout.addWidget(self.colorPickerFrame)
        self.leftPanelVLayout.setStretch(0, 5)

        self.mainPanel = QFrame(self.leftRightSplitter)

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

        self.mainPanel.setSizePolicy(sizePolicy)
        self.mainPanel.setMinimumSize(QSize(320, 240))
        self.mainPanel.setAutoFillBackground(False)
        self.mainPanel.setFrameShape(QFrame.StyledPanel)
        self.mainPanel.setFrameShadow(QFrame.Raised)
        self.mainPanel.setObjectName("mainPanel")

        self.verticalLayout = QVBoxLayout(self.mainPanel)
        self.verticalLayout.setObjectName("verticalLayout")

        self.canvasFrame = QFrame(self.mainPanel)

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

        self.canvasFrame.setSizePolicy(sizePolicy)
        self.canvasFrame.setMinimumSize(310, 230)
        self.canvasFrame.setFrameShape(QFrame.StyledPanel)
        self.canvasFrame.setFrameShadow(QFrame.Raised)
        self.canvasFrame.setObjectName("canvasFrame")

        self.verticalLayout.addWidget(self.canvasFrame)
        self.verticalLayout.setStretch(0, 12)

        self.rightPanel = QFrame(self.leftRightSplitter)

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

        self.rightPanel.setSizePolicy(sizePolicy)
        self.rightPanel.setMinimumSize(QSize(245, 550))
        self.rightPanel.setMaximumSize(QSize(340, 16777215))
        self.rightPanel.setFrameShape(QFrame.StyledPanel)
        self.rightPanel.setFrameShadow(QFrame.Raised)
        self.rightPanel.setObjectName("rightPanel")

        self.rightPanelLayout = QVBoxLayout(self.rightPanel)
        self.rightPanelLayout.setObjectName("rightPanelLayout")

        self.previewFrame = QFrame(self.rightPanel)
        self.previewFrame.setMaximumSize(320, 500)
        self.previewFrame.setFrameShape(QFrame.StyledPanel)
        self.previewFrame.setFrameShadow(QFrame.Raised)
        self.previewFrame.setObjectName("previewFrame")

        self.rightPanelLayout.addWidget(self.previewFrame)

        self.layerListFrame = QFrame(self.rightPanel)
        self.layerListFrame.setFrameShape(QFrame.StyledPanel)
        self.layerListFrame.setFrameShadow(QFrame.Raised)
        self.layerListFrame.setObjectName("layerListFrame")

        self.rightPanelLayout.addWidget(self.layerListFrame)

        self.animationBarFrame = QFrame(self.topDownSplitter)

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

        self.animationBarFrame.setSizePolicy(sizePolicy)
        self.animationBarFrame.setMinimumSize(QSize(600, 100))
        self.animationBarFrame.setMaximumSize(QSize(16777215, 100))
        self.animationBarFrame.setFrameShape(QFrame.StyledPanel)
        self.animationBarFrame.setFrameShadow(QFrame.Raised)
        self.animationBarFrame.setObjectName("animationBarFrame")

        self.horizontalLayout.addWidget(self.topDownSplitter)

        main_window.setCentralWidget(self.central_widget)

        self.toolBar = QToolBar(main_window)

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

        self.toolBar.setSizePolicy(sizePolicy)
        self.toolBar.setMovable(False)
        self.toolBar.setFloatable(False)
        self.toolBar.setObjectName("toolBar")

        main_window.addToolBar(Qt.TopToolBarArea, self.toolBar)

        self.actionNew = QAction(main_window)
        self.actionNew.setObjectName("actionNew")

        self.actionQuit = QAction(main_window)
        self.actionQuit.setObjectName("actionQuit")

        self.actionOpen = QAction(main_window)
        self.actionOpen.setObjectName("actionOpen")

        self.actionSave = QAction(main_window)
        self.actionSave.setObjectName("actionSave")

        self.actionSaveAs = QAction(main_window)
        self.actionSaveAs.setObjectName("actionSaveAs")

        self.actionClose = QAction(main_window)
        self.actionClose.setObjectName("actionClose")

        self.actionExport = QAction(main_window)
        self.actionExport.setObjectName("actionExport")

        self.actionImport = QAction(main_window)
        self.actionImport.setObjectName("actionImport")

        self.toolBar.addAction(self.actionNew)
        self.toolBar.addAction(self.actionOpen)
        self.toolBar.addAction(self.actionImport)
        self.toolBar.addAction(self.actionSave)
        self.toolBar.addAction(self.actionSaveAs)
        self.toolBar.addAction(self.actionExport)
        self.toolBar.addAction(self.actionClose)
        self.toolBar.addAction(self.actionQuit)

        self.retranslateUi(main_window)
        QMetaObject.connectSlotsByName(main_window)

    def retranslateUi(self, main_window):

        _translate = QCoreApplication.translate

        main_window.setWindowTitle(_translate("MainWindow", "SpriteMator"))
        self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))

        self.actionNew.setText(_translate("MainWindow", "New"))
        self.actionNew.setIconText(_translate("MainWindow", "New"))
        self.actionNew.setToolTip(_translate("MainWindow", "New Sprite"))
        self.actionNew.setShortcut(_translate("MainWindow", "Ctrl+N"))

        self.actionQuit.setText(_translate("MainWindow", "Quit"))
        self.actionQuit.setToolTip(
            _translate("MainWindow", "Close Application"))
        self.actionQuit.setShortcut(_translate("MainWindow", "Esc"))

        self.actionOpen.setText(_translate("MainWindow", "Open"))
        self.actionOpen.setToolTip(_translate("MainWindow", "Open Sprite"))
        self.actionOpen.setShortcut(_translate("MainWindow", "Ctrl+O"))

        self.actionSave.setText(_translate("MainWindow", "Save"))
        self.actionSave.setToolTip(_translate("MainWindow", "Save Sprite"))
        self.actionSave.setShortcut(_translate("MainWindow", "Ctrl+S"))

        self.actionSaveAs.setText(_translate("MainWindow", "SaveAs"))
        self.actionSaveAs.setToolTip(
            _translate("MainWindow", "Save Sprite with another name"))
        self.actionSaveAs.setShortcut(_translate("MainWindow", "Ctrl+Shift+S"))

        self.actionClose.setText(_translate("MainWindow", "Close"))
        self.actionClose.setToolTip(_translate("MainWindow", "Close Sprite"))
        self.actionClose.setShortcut(_translate("MainWindow", "Ctrl+Q"))

        self.actionExport.setText(_translate("MainWindow", "Export"))
        self.actionExport.setToolTip(
            _translate(
                "MainWindow",
                "Export Sprite animations : Either as separate images or as a spritesheet"
            ))
        self.actionExport.setShortcut(_translate("MainWindow", "Ctrl+E"))

        self.actionImport.setText(_translate("MainWindow", "Import"))
        self.actionImport.setToolTip(
            _translate("MainWindow",
                       "Create a Sprite from one or more images"))
        self.actionImport.setShortcut(_translate("MainWindow", "Ctrl+I"))
Esempio n. 16
0
class StatusBar(QWidget):
    def __init__(self, parent):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.centralFrame = QFrame(self)
        self.centralFrame.setFrameShape(QFrame.NoFrame)
        self.centralFrame.setFrameShadow(QFrame.Raised)
        self.centralFrame.setMinimumSize(QSize(0, 25))
        self.centralFrame.setMaximumSize(QSize(16777215, 25))
        self.centralFrame.setContentsMargins(0, 0, 0, 0)
        self.centralFrame.setStyleSheet(u"background-color: rgb(27, 29, 35);")

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

        self.developerLabel = Label(self.labelsFrame)
        self.developerLabel.setText("Ashwin Sakhare")

        self.instituteLabel = Label(self.labelsFrame)
        self.instituteLabel.setText(
            "Stevens Neuroimaging and Informatics Institute")

        self.universityLabel = Label(self.labelsFrame)
        self.universityLabel.setText("University of Southern California")

        self.labelsLayout = QHBoxLayout(self.labelsFrame)
        self.labelsLayout.addWidget(self.developerLabel)
        self.labelsLayout.addWidget(self.instituteLabel)
        self.labelsLayout.addWidget(self.universityLabel)
        self.labelsLayout.setSpacing(50)
        self.labelsLayout.setContentsMargins(10, 0, 0, 0)

        self.labelsLayout.setAlignment(Qt.AlignLeft)

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

        self.versionLabel = Label(self.labelsFrame)
        self.versionLabel.setText("v1.0.0 alpha")

        self.versionLayout = QHBoxLayout(self.versionFrame)
        self.versionLayout.addWidget(self.versionLabel)
        self.versionLayout.setAlignment(Qt.AlignRight)
        self.versionLayout.setContentsMargins(0, 0, 20, 0)

        self.gripFrame = QFrame(self.centralFrame)
        self.gripFrame.setFrameShape(QFrame.NoFrame)
        self.gripFrame.setFrameShadow(QFrame.Raised)
        self.gripFrame.setMaximumSize(QSize(20, 20))
        self.gripFrame.setContentsMargins(0, 0, 0, 0)

        # path = resource_path('icons/cil-size-grip.png')
        # self.gripFrame.setStyleSheet("background-image: url(" + str(path) + "); \n"
        #                              "background-position: center; \n"
        #                              "background-repeat: no repeat")

        self.ui_sizeGrip = QSizeGrip(self.gripFrame)
        self.ui_sizeGrip.setStyleSheet(
            "width: 20px; height: 20px; margin 0px; padding: 0px;")

        self.gripLabel = QLabel(self.gripFrame)
        self.pixmap = QPixmap(resource_path('icons/cil-size-grip.png'))
        self.gripLabel.setPixmap(self.pixmap)

        self.gripLayout = QHBoxLayout(self.gripFrame)
        self.gripLayout.addWidget(self.gripLabel)
        self.gripLayout.setAlignment(Qt.AlignCenter)
        self.gripLayout.setContentsMargins(0, 0, 0, 0)

        self.centralLayout = QHBoxLayout(self.centralFrame)
        self.centralLayout.addWidget(self.labelsFrame)
        self.centralLayout.addWidget(self.versionFrame)
        self.centralLayout.addWidget(self.gripFrame)
        self.centralLayout.setSpacing(0)
        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. 17
0
class ClientAccountView(QDialog):
    """All details that client can see on the interface"""
    def __init__(self, email):
        super(ClientAccountView, self).__init__()
        self.ui = loadUi("Resources/interfaces/client_panel.ui", self)
        self.show()
        self.open_trips_button.clicked.connect(self.open_all_trips)
        self.emp_title_back_to_first_page.clicked.connect(self.back_to_first_page)
        self.menu_trip_button.clicked.connect(lambda: self.trip_booking(email))

    def open_all_trips(self):
        self.ui.stackedWidget.setCurrentWidget(self.ui.Trips_page)
        get_number_of_trips_to_load = 'SELECT COUNT(*) FROM trips'
        DatabaseConnection.cursor.execute(get_number_of_trips_to_load)
        number_of_trips, = DatabaseConnection.cursor.fetchone()

        get_trips_details = 'SELECT * FROM trips'
        DatabaseConnection.cursor.execute(get_trips_details)
        trip_details = DatabaseConnection.cursor.fetchall()
        for i in range(number_of_trips):
            trip_name = trip_details[i][1]
            trip_price = str(trip_details[i][2])
            trip_country = trip_details[i][3]
            trip_city = trip_details[i][4]
            trip_start = str(trip_details[i][5])
            trip_end = str(trip_details[i][6])
            trip_ship = trip_details[i][7]
            self.create_new_widget(i, 0, trip_name, trip_price, trip_country, trip_city, trip_start, trip_end,
                                   trip_ship)

    def back_to_first_page(self):
        self.ui.stackedWidget.setCurrentWidget(self.Welcome_page)

    def create_new_widget(self, row, column, trip_name, trip_price, trip_country, trip_city, trip_start, trip_end,
                          trip_ship):

        self.single_trip = QFrame(self.ui.scrollAreaWidgetContents)
        self.single_trip.setObjectName(u"single_trip")
        self.single_trip.setMinimumSize(QSize(0, 125))
        self.single_trip.setMaximumSize(QSize(16777215, 125))
        self.single_trip.setStyleSheet(u"")
        self.single_trip.setFrameShape(QFrame.StyledPanel)
        self.single_trip.setFrameShadow(QFrame.Raised)
        self.gridLayout_2 = QGridLayout(self.ui.single_trip)
        self.gridLayout_2.setObjectName(u"gridLayout_2")

        self.name_label = QLabel(self.single_trip)
        self.name_label.setObjectName(u"name_label")
        self.name_label.setText(QCoreApplication.translate("Dialog", 'Name: ' + trip_name, None))
        self.gridLayout_2.addWidget(self.name_label, 0, 0, 1, 1)

        self.price_label = QLabel(self.single_trip)
        self.price_label.setObjectName(u"price_label")
        self.price_label.setAlignment(Qt.AlignRight)
        self.price_label.setText(QCoreApplication.translate("Dialog", 'Price: ' + trip_price, None))
        self.gridLayout_2.addWidget(self.price_label, 0, 3, 1, 1)

        self.country_label = QLabel(self.single_trip)
        self.country_label.setObjectName(u"country_label")
        self.country_label.setText(QCoreApplication.translate("Dialog", 'Sail out of: ' + trip_country, None))
        self.gridLayout_2.addWidget(self.country_label, 1, 0, 1, 1)

        self.city_label = QLabel(self.single_trip)
        self.city_label.setObjectName(u"city_label")
        self.city_label.setText(QCoreApplication.translate("Dialog", trip_city, None))
        self.gridLayout_2.addWidget(self.city_label, 1, 1, 1, 1)

        self.start_label = QLabel(self.single_trip)
        self.start_label.setObjectName(u"start_label")
        self.start_label.setText(QCoreApplication.translate("Dialog", 'Date: ' + trip_start[0:10], None))
        self.gridLayout_2.addWidget(self.start_label, 1, 2, 1, 1)

        self.end_label = QLabel(self.single_trip)
        self.end_label.setObjectName(u"end_label")
        self.end_label.setText(QCoreApplication.translate("Dialog", trip_end[0:10], None))
        self.gridLayout_2.addWidget(self.end_label, 1, 3, 1, 1)

        self.ship_label = QLabel(self.single_trip)
        self.ship_label.setObjectName(u"ship_label")
        self.ship_label.setText(QCoreApplication.translate("Dialog", 'Ship: ' + trip_ship, None))
        self.gridLayout_2.addWidget(self.ship_label, 2, 0, 1, 1)

        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.gridLayout_2.addItem(self.horizontalSpacer, 0, 1, 1, 1)

        self.gridLayout.addWidget(self.single_trip, row, column, 1, 1)

    def trip_booking(self, email):
        self.ui.stackedWidget.setCurrentWidget(self.Choose_trip_page)
        LoadDataToComboBox.load_trips(self.trip_combobox)

        get_number_of_available_trips = 'SELECT COUNT(*) FROM trips'
        DatabaseConnection.cursor.execute(get_number_of_available_trips)
        number_of_available_trips, = DatabaseConnection.cursor.fetchone()
        if number_of_available_trips == 0:
            self.ui.stackedWidget.setCurrentWidget(self.Choose_trip_page)
            self.trip_name_error_label.setText('No trips available')
        else:
            self.load_trips_on_change()

        self.trip_combobox.currentTextChanged.connect(self.load_trips_on_change)
        self.book_button.clicked.connect(lambda: self.check_details_of_trip_to_book(email))

    def load_trips_on_change(self):
        trip_name = self.trip_combobox.currentText()
        get_ship_name_assigned_to_trip = 'SELECT onboard FROM trips WHERE name = :given_trip_name'
        DatabaseConnection.cursor.execute(get_ship_name_assigned_to_trip, given_trip_name=trip_name)
        ship_name_assigned_to_trip, = DatabaseConnection.cursor.fetchone()
        get_ship_id_assigned_to_trip = 'SELECT ship_id FROM ships WHERE ship_name = :given_ship_name'
        DatabaseConnection.cursor.execute(get_ship_id_assigned_to_trip, given_ship_name=ship_name_assigned_to_trip)
        ship_id_assigned_to_trip, = DatabaseConnection.cursor.fetchone()

        get_number_of_available_ship_cabins = "SELECT COUNT(*) FROM ship_cabins WHERE room_type IS NOT NULL AND" \
                                              " reserved = 'F' AND ship_id = :given_ship_id"
        DatabaseConnection.cursor.execute(get_number_of_available_ship_cabins, given_ship_id=ship_id_assigned_to_trip)
        number_of_available_ship_cabins, = DatabaseConnection.cursor.fetchone()

        get_available_ship_cabins_for_trip = "SELECT room_number, room_type, guests, sq_m, balcony_sq_m FROM" \
                                             " ship_cabins WHERE" \
                                             " room_type IS NOT NULL AND reserved = 'F' AND ship_id = :given_ship_id"
        DatabaseConnection.cursor.execute(get_available_ship_cabins_for_trip, given_ship_id=ship_id_assigned_to_trip)
        available_ship_cabins_for_trip = DatabaseConnection.cursor.fetchall()
        self.cabin_combobox.clear()
        for i in range(number_of_available_ship_cabins):
            room_number = available_ship_cabins_for_trip[i][0]
            cabin_type = available_ship_cabins_for_trip[i][1]
            cabin_guest = available_ship_cabins_for_trip[i][2]
            cabin_sq_m = available_ship_cabins_for_trip[i][3]
            cabin_balcony_sq_m = available_ship_cabins_for_trip[i][4]
            self.cabin_combobox.addItem(str('Cabin type: ') + cabin_type +
                                        str(' Guests: ') + str(cabin_guest)
                                        + str(' Square meters: ') + str(cabin_sq_m) + str(' Balcony square meters: ')
                                        + str(cabin_balcony_sq_m) + str(' Room number:  ') + room_number)

    def check_details_of_trip_to_book(self, email):
        check_trip_to_book = CheckDetailsTripToBook()
        trip_name = self.trip_combobox.currentText()
        trip_name_check = check_trip_to_book.check_trip_name(trip_name, self.trip_name_error_label)
        cabin = self.cabin_combobox.currentText()
        cabin_check = check_trip_to_book.check_room_to_book(cabin, self.cabin_error_label)
        room_number = cabin[-3:].strip()

        if trip_name_check and cabin_check:
            AddPortObjectToDatabase.NewBookedTrip(email, trip_name, room_number)
            self.close()
Esempio n. 18
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. 19
0
class DisplayBrightnessSelectorView(QWidget):
    """The range (dual-value) slider for adjust voxel brightness."""
    def __init__(self, controller, parent=Controller):
        super(DisplayBrightnessSelectorView, self).__init__()
        self.label = QLabel('Voxel Display Boundaries')
        self.startProportion = 0.1  # the start slider's range proportion to the entire range length
        self.startSliderMaxValue = int(
            VOX_MAX_VAL *
            self.startProportion)  # the max value of the start slider
        self.endSliderMaxValue = int(
            VOX_MAX_VAL *
            (1 - self.startProportion))  # the max value of the end slider
        self.minDisplayVox = 0  # the converted min value for displaying voxel
        self.maxDisplayVox = VOX_MAX_VAL  # the converted max value for displaying voxel
        self.controller = controller
        self.setupUi(self)

    def convertMinSliderToMinVox(self, value):
        """Converts the value from the start slider (inverted) to min voxel value"""
        return int(VOX_MAX_VAL * self.startProportion - value)

    def convertMaxSliderToMaxVox(self, value):
        """Converts the value from the end slider to max voxel value"""
        return int(value + VOX_MAX_VAL * self.startProportion)

    def setupUi(self, RangeSlider):
        RangeSlider.setObjectName("RangeSlider")
        RangeSlider.resize(1000, 65)
        RangeSlider.setMaximumSize(QSize(16777215, 65))
        self.RangeBarVLayout = QVBoxLayout(RangeSlider)
        self.RangeBarVLayout.setContentsMargins(5, 0, 5, 0)
        self.RangeBarVLayout.setSpacing(0)
        self.RangeBarVLayout.setObjectName("RangeBarVLayout")

        self.slidersFrame = QFrame(RangeSlider)
        self.slidersFrame.setMaximumSize(QSize(16777215, 25))
        self.slidersFrame.setFrameShape(QFrame.StyledPanel)
        self.slidersFrame.setFrameShadow(QFrame.Raised)
        self.slidersFrame.setObjectName("slidersFrame")
        self.horizontalLayout = QHBoxLayout(self.slidersFrame)
        self.horizontalLayout.setSizeConstraint(QLayout.SetMinimumSize)
        self.horizontalLayout.setContentsMargins(5, 2, 5, 2)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName("horizontalLayout")

        ## Start Slider Widget
        self.startSlider = QSlider(self.slidersFrame)
        self.startSlider.setMaximum(self.startSliderMaxValue)
        self.startSlider.setMinimumSize(QSize(100, 20))
        self.startSlider.setMaximumSize(QSize(16777215, 20))

        font = QtGui.QFont()
        font.setKerning(True)

        self.startSlider.setFont(font)
        self.startSlider.setAcceptDrops(False)
        self.startSlider.setAutoFillBackground(False)
        self.startSlider.setOrientation(Qt.Horizontal)
        self.startSlider.setInvertedAppearance(True)
        self.startSlider.setObjectName("startSlider")
        self.startSlider.setValue(self.startSliderMaxValue)
        self.startSlider.valueChanged.connect(
            self.handleStartSliderValueChange)

        # End Slider Widget
        self.endSlider = QSlider(self.slidersFrame)
        self.endSlider.setMaximum(self.endSliderMaxValue)
        self.endSlider.setMinimumSize(QSize(100, 20))
        self.endSlider.setMaximumSize(QSize(16777215, 20))
        self.endSlider.setTracking(True)
        self.endSlider.setOrientation(Qt.Horizontal)
        self.endSlider.setObjectName("endSlider")
        self.endSlider.setValue(self.endSliderMaxValue)
        self.endSlider.valueChanged.connect(self.handleEndSliderValueChange)

        # self.endSlider.sliderReleased.connect(self.handleEndSliderValueChange)
        self.horizontalLayout.addWidget(self.startSlider,
                                        int(self.startProportion * 100))
        self.horizontalLayout.addWidget(self.endSlider,
                                        int(100 - 100 * self.startProportion))
        self.RangeBarVLayout.addWidget(self.label)
        self.RangeBarVLayout.addWidget(self.slidersFrame)

        # self.retranslateUi(RangeSlider)
        QMetaObject.connectSlotsByName(RangeSlider)

        self.show()

    def updateLabel(self):
        # print(f'Voxel sliders: {self.minDisplayVox}, {self.maxDisplayVox}')
        self.label.setText(
            f'Voxel Brightness Range:({self.minDisplayVox},{self.maxDisplayVox})'
        )

    @pyqtSlot(int)
    def handleStartSliderValueChange(self, value):
        self.startSlider.setValue(value)
        self.minDisplayVox = self.convertMinSliderToMinVox(value)
        self.updateLabel()
        self.controller.updateVoxDisplayRange(self.minDisplayVox,
                                              self.maxDisplayVox)

    @pyqtSlot(int)
    def handleEndSliderValueChange(self, value):
        self.endSlider.setValue(value)
        self.maxDisplayVox = self.convertMaxSliderToMaxVox(value)
        self.updateLabel()
        self.controller.updateVoxDisplayRange(self.minDisplayVox,
                                              self.maxDisplayVox)

    def setStartSliderValue(self, value):
        self.startSlider.setValue(value)

    def setEndSliderValue(self, value):
        self.endSlider.setValue(value)
Esempio n. 20
0
class Ui_Dialog(object):
    """对话框 UI."""
    def setupUi(self, MainWindow):
        """UI 初始化."""
        MainWindow.setObjectName('MainWindow')
        MainWindow.resize(400, 400)
        self.centralWidget = QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")

        # vertical box, the principal layout
        self.mainVBox = QVBoxLayout(self.centralWidget)

        self.topHBox = QHBoxLayout()

        self.lbl = QLabel('lbl')
        self.comboBox = QComboBox()
        self.comboBox.setMinimumSize(150, 10)
        spacerItem = QSpacerItem(30, 10, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.topHBox.addWidget(self.lbl)
        self.topHBox.addWidget(self.comboBox)
        self.topHBox.addItem(spacerItem)

        # left frame
        self.leftFrame = QFrame()
        self.leftFrame.setFrameShape(QFrame.StyledPanel)
        self.leftFrame.setGeometry(0, 0, 200, 500)
        self.leftFrame.setMinimumSize(100, 200)
        self.leftFrame.setMaximumSize(200, 300)
        # self.leftFrame.setSizePolicy(QSizePolicy.Expanding,
        #                              QSizePolicy.Expanding)
        self.leftListView = QListView(self.leftFrame)
        self.leftListView.setWindowTitle('表清单')
        self.leftListView.setMinimumSize(100, 200)
        self.leftListView.setSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Expanding)
        self.leftListView.setEditTriggers(QListView.NoEditTriggers)

        # button frame
        self.buttonFrame = QFrame()
        self.buttonFrame.setFrameShape(QFrame.StyledPanel)
        self.buttonFrame.setFrameShadow(QFrame.Raised)
        self.buttonLayout = QHBoxLayout(self.buttonFrame)

        # button
        self.submitButton = QPushButton(self.buttonFrame)
        self.submitButton.setText('submitButton')
        self.exitButton = QPushButton(self.buttonFrame)
        self.exitButton.setText('exitButton')

        spacerItem = QSpacerItem(200, 10, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.buttonLayout.addItem(spacerItem)
        self.buttonLayout.addWidget(self.submitButton)
        self.buttonLayout.addWidget(self.exitButton)

        self.mainVBox.addLayout(self.topHBox)
        self.mainVBox.addWidget(self.leftListView)
        self.mainVBox.addWidget(self.buttonFrame)

        # bind centralWidget to MainWindow ****************************
        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslationUi(MainWindow)
        QMetaObject.connectSlotsByName(MainWindow)

    def retranslationUi(self, MainWindow):
        """窗口标题命名."""
        _translate = QCoreApplication.translate
        MainWindow.setWindowTitle(_translate('MainWindow', '权限管理'))
        self.submitButton.setText(_translate('submitButton', '确认提交'))
        self.exitButton.setText(_translate('exitButton', '退出'))
        self.lbl.setText(_translate('lbl', '权限名称: '))
Esempio n. 21
0
class DashboardMainWindow(QMainWindow):

    def __init__(self, gui_concentrate_handler, parent=None):
        super(DashboardMainWindow, self).__init__(parent)

        self.gui_concentrate_handler = gui_concentrate_handler

        self.__setup_ui__()

    def __setup_ui__(self):
        self.setObjectName(DashboardMainWindowStyles.main_page_style[0])
        self.setWindowModality(Qt.ApplicationModal)
        self.setContextMenuPolicy(Qt.NoContextMenu)
        self.setAcceptDrops(False)
        self.setAutoFillBackground(False)
        self.setDocumentMode(False)
        self.setDockNestingEnabled(False)
        self.setMouseTracking(True)
        self.central_widget = QWidget(self)
        self.central_widget.setStyleSheet(DashboardMainWindowStyles.central_widget_style)

        # Add Central Layout
        self.central_vlayout = QVBoxLayout(self.central_widget)
        self.central_vlayout.setContentsMargins(0, 0, 0, 0)
        self.central_vlayout.setObjectName("central_vlayout")

        # Add Containers
        self.containers = QFrame(self.central_widget)
        self.containers.setObjectName(DashboardMainWindowStyles.main_window_containers_style[0])
        self.containers.setStyleSheet(DashboardMainWindowStyles.main_window_containers_style[1])
        self.containers.setFrameShape(QFrame.NoFrame)
        self.containers.setFrameShadow(QFrame.Plain)
        self.containers.setLineWidth(0)

        # Add Containers Layout
        self.containers_gridlayout = QGridLayout(self.containers)
        self.containers_gridlayout.setContentsMargins(0, 0, 0, 0)
        self.containers_gridlayout.setSpacing(0)
        self.containers_gridlayout.setObjectName("containers_gridlayout")

        # Add Scroll Layout
        self.navigation_scroll_layout = QScrollArea(self.containers)
        self.navigation_scroll_layout.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.navigation_scroll_layout.setObjectName(DashboardMainWindowStyles.navigation_scroll_layout_style[0])
        self.navigation_scroll_layout.setStyleSheet(DashboardMainWindowStyles.navigation_scroll_layout_style[1])
        self.navigation_scroll_layout.setWidgetResizable(True)
        self.navigation_scroll_layout.setMinimumSize(QSize(71, 0))
        self.navigation_scroll_layout.setMaximumSize(QSize(71, 16777215))
        # add contents
        self.navigation_scroll_layout_contents = QWidget()
        self.navigation_scroll_layout_contents.setGeometry(QRect(0, 0, 71, self.height()))
        self.navigation_scroll_layout_contents.setObjectName("scroll_area_contents_page_containers")
        # َAdd navigation_layout
        self.navigation_grid_layout = QGridLayout(self.navigation_scroll_layout_contents)
        self.navigation_grid_layout.setContentsMargins(0, 0, 0, 0)
        self.navigation_grid_layout.setVerticalSpacing(0)
        self.navigation_grid_layout.setObjectName("navigation_grid_layout")
        # Add Navigation
        self.navigation_menu = QFrame(self.navigation_scroll_layout_contents)
        self.navigation_menu.setObjectName(DashboardMainWindowStyles.navigation_menu_style[0])
        self.navigation_menu.setStyleSheet(DashboardMainWindowStyles.navigation_menu_style[1])
        self.navigation_menu.setMaximumSize(QSize(71, 16777215))
        self.navigation_menu.setFrameShape(QFrame.StyledPanel)
        self.navigation_menu.setFrameShadow(QFrame.Raised)
        # set Media Screen
        self.__media_screen__()
        # Add MainFrame
        self.main_frame = QFrame(self.containers)
        size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
        size_policy.setHorizontalStretch(0)
        size_policy.setVerticalStretch(0)
        size_policy.setHeightForWidth(self.main_frame.sizePolicy().hasHeightForWidth())
        self.main_frame.setSizePolicy(size_policy)
        self.main_frame.setObjectName("main_frame")

        # Add MainFrameLayout
        self.main_frame_gridLayout = QGridLayout(self.main_frame)
        self.main_frame_gridLayout.setContentsMargins(8, 8, 8, 8)
        self.main_frame_gridLayout.setSpacing(0)
        self.main_frame_gridLayout.setObjectName("gridLayout")
        # Add pic_main_logo
        self.pic_main_logo = QLabel(self.navigation_menu)
        self.pic_main_logo.setGeometry(QRect(0, 35, 71, 71))
        self.pic_main_logo.setAlignment(Qt.AlignCenter)
        self.pic_main_logo.setPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/kodiak_icon.svg"))
        self.pic_main_logo.setObjectName("pic_main_logo")

        # Add LblTime
        self.lbl_time = QLabel(self.navigation_menu)
        self.lbl_time.setGeometry(QRect(0, 120, 69, 20))
        self.lbl_time.setObjectName(DashboardMainWindowStyles.lbl_time_style[0])
        self.lbl_time.setStyleSheet(DashboardMainWindowStyles.lbl_time_style[1])
        self.lbl_time.setAlignment(Qt.AlignCenter)

        # Add lblDate
        self.lbl_date = QLabel(self.navigation_menu)
        self.lbl_date.setGeometry(QRect(0, 140, 71, 21))
        self.lbl_date.setObjectName(DashboardMainWindowStyles.lbl_date_style[0])
        self.lbl_date.setStyleSheet(DashboardMainWindowStyles.lbl_date_style[1])
        self.lbl_date.setAlignment(Qt.AlignCenter)

        self.navigation_item_vlayout = QWidget(self.navigation_menu)
        self.navigation_item_vlayout.setGeometry(QRect(0, 220, 64, 431))
        self.navigation_item_vlayout.setObjectName("navigation_item_vlayout")

        # set li_hacktor_logo
        self.li_hacktor = QLabel(self.navigation_menu)
        self.li_hacktor.setAccessibleName("hacktor_logo")
        is_extra_screen, extra_screen_width, extra_screen_height = MediaScreen().is_extra_large()
        if is_extra_screen:
            if extra_screen_height <= 800:
                self.li_hacktor.hide()
            else:
                self.li_hacktor.setGeometry(QRect(25, self.height() - 80, 22, 33))
        else:
            if extra_screen_height > 800:
                self.li_hacktor.setGeometry(QRect(25, self.height() - 80, 22, 33))
            else:
                if extra_screen_height <= 600:
                    self.li_hacktor.hide()
                else:
                    self.li_hacktor.setGeometry(QRect(25, self.height(), 22, 33))

        self.li_hacktor.setPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/hacktor_logo.svg"))
        self.li_hacktor.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)

        self.page_containers = QFrame(self.main_frame)
        self.page_containers.setFrameShape(QFrame.StyledPanel)
        self.page_containers.setFrameShadow(QFrame.Raised)
        self.page_containers.setObjectName("center_page_maker")
        self.page_containers.setMinimumSize(self.width() - 111, self.height() - 111)

        self.main_frame_gridLayout.addWidget(self.page_containers, 1, 0, 1, 4)
        self.page_containers_grid_layout = QGridLayout(self.page_containers)
        self.page_containers_grid_layout.setObjectName("page_containers_gridLayout")

        from ...components.menu_containers.menu_containers import MenuContainers
        self.menu = MenuContainers(
            self.page_containers_grid_layout, gui_concentrate_handler=self.gui_concentrate_handler
        )
        self.menu.setup_ui(
            navigation_item_vlayout=self.navigation_item_vlayout, containers=self.containers,
            page_containers=self.page_containers
        )
        from ...components.top_navigation_bar_containers.top_navigation_bar_containers import TopNavigationBarContainers
        TopNavigationBarContainers(
            gui_concentrate_handler=self.gui_concentrate_handler
        ).setup_ui(containers=self.main_frame, main_gridLayout=self.main_frame_gridLayout)

        main_icon = QIcon()
        main_icon.addPixmap(QPixmap(AppPaths.GUI_ASSETS_ICONS_PATH + "/main_window/main_logo.ico"))
        self.setWindowIcon(main_icon)
        self.setAutoFillBackground(False)
        self.setStyleSheet(DashboardMainWindowStyles.main_page_style[1])
        self.setDocumentMode(False)
        self.setDockNestingEnabled(False)
        self.navigation_grid_layout.addWidget(self.navigation_menu, 0, 0, 1, 1)
        self.containers_gridlayout.addWidget(self.navigation_scroll_layout, 2, 2, 1, 1)
        self.navigation_scroll_layout.setWidget(self.navigation_scroll_layout_contents)

        # self.central_widget = QWidget(self)
        # self.central_widget.setStyleSheet(DashboardMainWindowStyles.central_widget_style)

        self.central_vlayout.addWidget(self.containers)
        self.containers_gridlayout.addWidget(self.main_frame, 2, 1, 1, 1)
        self.setCentralWidget(self.central_widget)
        self.__retranslateUi__()

    def __retranslateUi__(self):
        """
            this method for retranslate data in UI
        """
        _translate = QCoreApplication.translate
        self.setWindowTitle(_translate("MainWindow", "Kodiak"))
        self.lbl_time.setText("04:20")
        self.lbl_date.setText("2020/15/19")

    def __media_screen__(self):
        """
        this is private method for set a standard size window for Your monitor , Tablet or ...
        """
        is_small_screen, small_screen_width, small_screen_height = MediaScreen().is_small()
        is_medium_screen, medium_screen_width, medium_screen_height = MediaScreen().is_medium()
        is_large_screen, large_screen_width, large_screen_height = MediaScreen().is_large()
        is_extra_large_screen, extra_large_screen_width, extra_large_screen_height = MediaScreen().is_extra_large()

        if is_extra_large_screen:
            if extra_large_screen_height <= 900:

                self.setMinimumSize(QSize(extra_large_screen_width - (extra_large_screen_width / 4),
                                          extra_large_screen_height - (extra_large_screen_height / 4) + 100))
            else:

                self.setMinimumSize(QSize(extra_large_screen_width - (extra_large_screen_width / 4),
                                          extra_large_screen_height - (extra_large_screen_height / 6) + 50))
            self.navigation_menu.setMinimumSize(QSize(71, 700))
        elif is_large_screen:
            self.setMinimumSize(QSize(large_screen_width - 200, large_screen_height - 90))
            self.navigation_menu.setMinimumSize(QSize(71, 550))
        elif is_medium_screen:
            self.setMinimumSize(QSize(medium_screen_width - 100, medium_screen_height - 100))
            self.navigation_menu.setMinimumSize(QSize(71, 700))
        elif is_small_screen:
            self.setMinimumSize(QSize(small_screen_width - 150, small_screen_width - 250))
            self.navigation_menu.setMinimumSize(QSize(71, 700))
        else:
            # any thing else
            self.setMinimumSize(QSize(1150, 800))
            self.navigation_menu.setMinimumSize(QSize(71, 700))

        # Delete From Memory
        del is_small_screen, is_medium_screen, is_large_screen
        del small_screen_width, medium_screen_width, large_screen_width
        del small_screen_height, medium_screen_height, large_screen_height
Esempio n. 22
0
class WindowFrame(QDialog):
    def __init__(self):
        super(WindowFrame, self).__init__()
        self.closed = False
        self.maxNormal = False
        self.resize(840, 480)
        self.setMouseTracking(True)

        self.base_path = os.path.dirname(__file__)

        QDir.setCurrent(os.path.dirname(self.base_path))

        #self.setWindowFlags(Qt.FramelessWindowHint)
        self.setWindowFlags(Qt.SplashScreen)
        #self.setWindowFlags(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint)
        #self.setStyleSheet("border : none; background-color : rgba(250,100,100,0)")
        #self.setAutoFillBackground(True)
        #self.setAttribute(Qt.WA_TranslucentBackground)

        self.mainLayout = QVBoxLayout()
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.mainLayout.setSpacing(0)

        #Title Bar
        self.area = ComboBox()
        self.area.setSizePolicy(
            QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
        self.area.setMaximumWidth(32)
        #self.area.setMinimumWidth(32)
        #self.area.setMinimumHeight(28)

        self.area.addItem(QIcon(icon_path("ICON_ACTION")), "Prefs")
        self.area.addItem(QIcon(icon_path("ICON_GROUP")), "Library")
        self.area.addItem(QIcon(icon_path("ICON_MATERIAL")), "Assets")

        self.titleBarArea = QFrame()
        #self.titleBarArea.setCursor(Qt.OpenHandCursor)
        self.titleBarLayout = QHBoxLayout()
        self.titleBarLayout.setContentsMargins(4, 2, 4, 2)
        self.titleBarArea.setStyleSheet("""
                            border : none; background-color : rgb(100,100,100);
                            border-top-left-radius: 5px;border-top-right-radius: 5px;
                            border-style: solid;
                            border-color: rgb(50, 50, 50);
                            border-bottom-width: 1px;""")

        self.titleBarArea.setMinimumHeight(30)
        self.titleBarArea.setMaximumHeight(30)

        self.title = Label('Lib Manager')

        self.toolBox = QFrame()
        self.toolBox.setStyleSheet("""
                        border : none; background-color : rgb(120,120,120);
                        border-top-left-radius: 0px;border-top-right-radius: 0px;
                        border-bottom-left-radius: 5px;border-bottom-right-radius: 5px;"""
                                   )
        self.toolBoxLayout = QHBoxLayout()
        self.toolBoxLayout.setContentsMargins(12, 0, 4, 0)
        self.toolBox.setLayout(self.toolBoxLayout)

        self.btn_add_asset = PushButton(icon=icon_path("ICON_ZOOMIN"),
                                        size=[22, 22])
        self.btn_settings = PushButton(icon=icon_path("ICON_SETTINGS"),
                                       size=[22, 22])

        self.toolBoxLayout.addWidget(self.btn_add_asset)
        self.toolBoxLayout.addWidget(self.btn_settings)

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

        self.btn_minimize = PushButton(icon=icon_path("ICON_MINIMIZE"),
                                       size=[22, 22])
        self.btn_minimize.clicked.connect(self.showSmall)

        self.btn_maximize = PushButton(icon=icon_path("ICON_MAXIMIZE"),
                                       size=[22, 22])
        self.btn_maximize.clicked.connect(self.showMaxRestore)

        self.btn_close = PushButton(icon=icon_path("ICON_CLOSE"),
                                    size=[22, 22])
        self.btn_close.clicked.connect(self.close)

        self.titleBarLayout.addWidget(self.area)
        self.titleBarLayout.addWidget(self.title)
        self.titleBarLayout.addItem(self.horizontalSpacer)
        self.titleBarLayout.addWidget(self.toolBox)
        self.titleBarLayout.addItem(self.hSpacer)
        self.titleBarLayout.addWidget(self.btn_minimize)
        self.titleBarLayout.addWidget(self.btn_maximize)
        self.titleBarLayout.addWidget(self.btn_close)

        self.titleBarArea.setLayout(self.titleBarLayout)

        self.middleLayout = QHBoxLayout()

        self.handleList = [self.titleBarArea]
        #Left Bar
        self.leftBarLayout = QVBoxLayout()
        self.leftHandle = QFrame()
        self.leftHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.leftHandle.setMaximumWidth(5)
        self.leftHandle.setMinimumWidth(5)
        self.leftHandle.setCursor(Qt.SizeHorCursor)

        self.leftBottomHandle = QFrame()
        self.leftBottomHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.leftBottomHandle.setMaximumSize(5, 16)
        self.leftBottomHandle.setCursor(Qt.SizeBDiagCursor)

        #Add handle to a list
        self.handleList += [self.leftHandle, self.leftBottomHandle]

        self.leftBarLayout.addWidget(self.leftHandle)
        self.leftBarLayout.addWidget(self.leftBottomHandle)

        #Content
        #self.content = QFrame()
        self.contentLayout = QVBoxLayout()
        self.contentLayout.setContentsMargins(0, 0, 0, 0)
        self.contentLayout.setSpacing(0)
        #self.content.setLayout(self.contentLayout)

        #Right Bar
        self.rightBarLayout = QVBoxLayout()
        self.rightHandle = QFrame()
        self.rightHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.rightHandle.setMaximumWidth(5)
        self.rightHandle.setMinimumWidth(5)
        self.rightHandle.setCursor(Qt.SizeHorCursor)

        self.rightBottomHandle = QFrame()
        self.rightBottomHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.rightBottomHandle.setMaximumSize(5, 16)
        self.rightBottomHandle.setCursor(Qt.SizeFDiagCursor)

        self.rightBarLayout.addWidget(self.rightHandle)
        self.rightBarLayout.addWidget(self.rightBottomHandle)

        #Add handle to a list
        self.handleList += [self.rightHandle, self.rightBottomHandle]

        self.middleLayout.addLayout(self.leftBarLayout)
        self.middleLayout.addLayout(self.contentLayout)
        self.middleLayout.addLayout(self.rightBarLayout)

        self.bottomLayout = QHBoxLayout()

        self.bottomLeftHandle = QFrame()
        self.bottomLeftHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.bottomLeftHandle.setMaximumSize(16, 5)
        self.bottomLeftHandle.setCursor(Qt.SizeBDiagCursor)

        self.bottomHandle = QFrame()
        self.bottomHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.bottomHandle.setMaximumHeight(5)
        self.bottomHandle.setMinimumHeight(5)
        self.bottomHandle.setCursor(Qt.SizeVerCursor)

        self.bottomRightHandle = QFrame()
        self.bottomRightHandle.setStyleSheet(
            "border : none; background-color : rgb(110,110,110);")
        self.bottomRightHandle.setMaximumSize(16, 5)
        self.bottomRightHandle.setCursor(Qt.SizeFDiagCursor)

        self.bottomLayout.addWidget(self.bottomLeftHandle)
        self.bottomLayout.addWidget(self.bottomHandle)
        self.bottomLayout.addWidget(self.bottomRightHandle)

        #Add handle to a list
        self.handleList += [
            self.bottomHandle, self.bottomLeftHandle, self.bottomRightHandle
        ]

        self.lowLayout = QVBoxLayout()
        self.lowLayout.addLayout(self.middleLayout)
        self.lowLayout.addLayout(self.bottomLayout)

        self.mainLayout.addWidget(self.titleBarArea)
        self.mainLayout.addLayout(self.lowLayout)

        ##Shadow
        self.shadow = QGraphicsDropShadowEffect()
        self.shadow.setColor(QColor(50, 50, 50, 200))
        self.shadow.setXOffset(5)
        self.shadow.setYOffset(5)
        self.shadow.setBlurRadius(8)
        self.setGraphicsEffect(self.shadow)
        #self.shadow.setEnabled(False)

        self.setLayout(self.mainLayout)

    def setContent(self, content):
        self.contentLayout.addWidget(content)

    def showSmall(self):
        self.showMinimized()

    def showMaxRestore(self):
        if (self.maxNormal):
            self.showNormal()
            self.maxNormal = False
            self.btn_maximize.setIcon(QIcon(icon_path("ICON_MAXIMIZE")))

        else:
            self.showMaximized()
            self.maxNormal = True
            self.btn_maximize.setIcon(QIcon(icon_path("ICON_MAXIMIZE_2")))

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton and QApplication.widgetAt(
                event.globalPos()) in self.handleList:
            #print(QApplication.widgetAt(event.globalPos()))
            self.moving = True
            self.pos_x = event.pos().x()
            self.pos_y = event.pos().y()
            self.pos = event.pos()

    def mouseMoveEvent(self, event):

        x_offset = event.pos().x() - self.pos_x
        y_offset = event.pos().y() - self.pos_y

        if self.moving:
            if self.rightHandle.underMouse():
                self.resize(self.frameGeometry().width() + x_offset,
                            self.frameGeometry().height())
                self.pos_x += x_offset

            if self.leftHandle.underMouse():
                self.move(event.globalPos().x() - self.pos_x,
                          self.frameGeometry().y())
                self.resize(self.frameGeometry().width() - x_offset,
                            self.frameGeometry().height())

            if self.bottomHandle.underMouse():
                self.resize(self.frameGeometry().width(),
                            self.frameGeometry().height() + y_offset)
                self.pos_y += y_offset

            if self.titleBarArea.underMouse():
                self.move(event.globalPos() - self.pos)

            if self.rightBottomHandle.underMouse(
            ) or self.bottomRightHandle.underMouse():
                self.resize(self.frameGeometry().width() + x_offset,
                            self.frameGeometry().height() + y_offset)
                self.pos_x += x_offset
                self.pos_y += y_offset

            if self.leftBottomHandle.underMouse(
            ) or self.bottomLeftHandle.underMouse():
                self.move(event.globalPos().x() - self.pos_x,
                          self.frameGeometry().y())
                self.resize(self.frameGeometry().width() - x_offset,
                            self.frameGeometry().height() + y_offset)
                #self.pos_x += x_offset
                self.pos_y += y_offset

    def close(self):
        self.closed = True
        self.deleteLater()
Esempio n. 23
0
class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.init_ui()

    def init_ui(self):

        v = QVBoxLayout()

        hbox1 = QHBoxLayout()

        btn = QPushButton("Dialog")
        btn.clicked.connect(self.showDialog)
        self.le = QLineEdit()

        hbox1.addWidget(btn)
        hbox1.addWidget(self.le)

        v.addLayout(hbox1)

        hbox2 = QHBoxLayout()
        btn1 = QPushButton("Dialog")
        btn1.clicked.connect(self.showDialog1)
        col = QColor(0, 0, 0)

        self.fram = QFrame()
        self.fram.setMinimumSize(100, 100)
        self.fram.setMaximumSize(self.fram.minimumSize())
        self.fram.setStyleSheet("QWidget {background-color: %s}" % col.name())

        hbox2.addWidget(btn1)
        hbox2.addWidget(self.fram)
        v.addLayout(hbox2)

        hbox3 = QHBoxLayout()

        btn3 = QPushButton("Dialog")
        btn3.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        btn3.clicked.connect(self.showDialog3)
        self.lbl = QLabel("Knowledge only matters")

        hbox3.addWidget(btn3)
        hbox3.addWidget(self.lbl)

        v.addLayout(hbox3)

        btn4 = QPushButton("Dialog")
        btn4.clicked.connect(self.showDialog4)
        v.addWidget(btn4)

        self.setLayout(v)

        self.setGeometry(500, 100, 500, 200)
        self.setWindowTitle("simple")
        self.show()

    def showDialog(self):
        text, ok = QInputDialog.getText(self, "Input Dialog", "Enter your name")
        if ok:
            self.le.setText(str(text))

    def showDialog1(self):
        col = QColorDialog.getColor()

        if col.isValid:
            self.fram.setStyleSheet("QWidget {background-color: %s}" % col.name())

    def showDialog3(self):
        font, ok = QFontDialog.getFont()
        if ok:
            self.lbl.setFont(font)

    def showDialog4(self):
        files = QFileDialog.getOpenFileName(self, "open file", "/PyQt5-Chinese-tutorial")
Esempio n. 24
0
    def create_box(self,
                   containers: QFrame,
                   frame_gridLayout: QGridLayout,
                   start_index: int = 0,
                   plugins=None,
                   box_type: bool = True):
        """this method for create primitive box

        Arguments:
            containers {QFrame} -- [parent layout]
            count_box {int} -- [count for create]

        Keyword Arguments:
            title {str} -- [title in box] (default: {""})
            image {str} -- [image in box] (default: {None})
            box_type {box type color type star box ...} -- [description] (default: {True})
            start_location {int} -- [ create box in location] (default: {30})
        """

        box_enumerate = 0
        for box_enumerate in range(0, len(plugins)):
            frame_border = QFrame(containers)
            frame_border.setCursor(QCursor(Qt.PointingHandCursor))
            frame_border.setMaximumSize(138, 138)
            frame_border.setMinimumSize(138, 138)
            if box_type:
                frame_border.setObjectName(
                    BoxStyles.frame_border_style_type1[0])
                frame_border.setStyleSheet(
                    BoxStyles.frame_border_style_type1[1])
            else:
                frame_border.setObjectName(
                    BoxStyles.frame_border_style_type2[0])
                frame_border.setStyleSheet(
                    BoxStyles.frame_border_style_type2[1])

            frame_border.setFrameShape(QFrame.StyledPanel)
            frame_border.setFrameShadow(QFrame.Raised)

            frame_border_vlayout = QVBoxLayout(frame_border)
            frame_border_vlayout.setContentsMargins(3, 3, 3, 3)
            frame_border_vlayout.setObjectName("frame_border_vlayout")

            box = QFrame(frame_border)
            box.setGeometry(QRect(3, 3, 133, 133))
            box.setCursor(QCursor(Qt.PointingHandCursor))
            box.setObjectName(BoxStyles.box_style[0])
            box.setStyleSheet(BoxStyles.box_style[1])
            box.setFrameShape(QFrame.StyledPanel)
            box.setFrameShadow(QFrame.Raised)

            box.mouseReleaseEvent = (
                lambda x: plugins[box_enumerate][0].execute_app())

            box_vlayout = QVBoxLayout(box)
            box_vlayout.setContentsMargins(-1, 40, -1, -1)
            box_vlayout.setObjectName("box_vlayout")

            image: str = plugins[box_enumerate][1]

            if image is not None:
                picture = QLabel(box)
                picture.setGeometry(QRect(0, 40, 131, 51))
                picture.setObjectName(BoxStyles.picture_style[0])
                picture.setStyleSheet(BoxStyles.picture_style[1])
                picture.setPixmap(QPixmap(image))
                picture.setAlignment(Qt.AlignCenter)

            lbl_title = QLabel(box)
            lbl_title.setGeometry(QRect(0, 100, 133, 20))
            lbl_title.setObjectName(BoxStyles.lbl_title_style[0])
            lbl_title.setStyleSheet(BoxStyles.lbl_title_style[1])
            lbl_title.setAlignment(Qt.AlignCenter)
            lbl_title.setText(plugins[box_enumerate][2])

            frame_gridLayout.addWidget(frame_border, 0,
                                       (box_enumerate + start_index),
                                       Qt.AlignLeft)

        return int(box_enumerate + 1)
Esempio n. 25
0
class MainWindow(QMainWindow):
    '''
    classdocs
    '''
    def __init__(self):
        super().__init__()

        splash = QPixmap("ressources/splash.png")
        splashscreen = QSplashScreen(splash)
        splashscreen.show()

        self.setWindowIcon(QIcon("ressources/fbld.ico"))
        self.setWindowTitle("FB Studio Info")
        rec = QApplication.desktop().screenGeometry()

        self.resize(rec.width(), rec.height())

        self.drawMainWindow()

        self.showFullScreen()
        #self.show()

        splashscreen.finish(self)

    '''
    Exit the program with escape key
    '''

    def keyPressEvent(self, event):

        if (event.key() == Qt.Key_Escape):
            self.close()

    '''
    Draw the main window
    '''

    def drawMainWindow(self):
        self.windowLayout = QFrame(self)
        self.windowLayout.setMinimumSize(self.width(), self.height())
        self.windowLayout.setMaximumSize(self.width(), self.height())

        self.gridLayout = QGridLayout(self)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setSpacing(0)

        self.drawTop()
        self.drawBottom()

        self.windowLayout.setLayout(self.gridLayout)

    '''
    Draw clock, FB Info
    '''

    def drawTop(self):

        self.uiclock = UIClock(self)
        self.uiLeftInfo = UIInfoLeft(self)
        self.uiRightInfo = UIInfoRight(self)

        self.gridLayout.addWidget(self.uiclock, 0, 0)
        self.gridLayout.addWidget(self.uiLeftInfo, 0, 1)
        self.gridLayout.addWidget(self.uiRightInfo, 0, 2)

    '''
    Draw tl-live, romandie and meteo
    '''

    def drawBottom(self):

        self.uitl = UITLMain(self)
        self.uinews = UINews(self)
        self.uimeteo = UIMeteoMain(self)

        self.gridLayout.addWidget(self.uitl, 1, 0)
        self.gridLayout.addWidget(self.uinews, 1, 1)
        self.gridLayout.addWidget(self.uimeteo, 1, 2)
Esempio n. 26
0
class TitleBar(QWidget):
    def __init__(self, ui_main):
        super().__init__()

        self.ui_main = ui_main

        self.initUI()

        self.minimizeBtn.clicked.connect(self.ui_main.showMinimized)
        self.resizeBtn.clicked.connect(self.resizeClicked)

    def initUI(self):
        self.sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
        self.sizePolicy.setHorizontalStretch(0)
        self.sizePolicy.setVerticalStretch(0)

        self.centralFrame = QFrame(self)
        self.centralFrame.setMinimumSize(QSize(0, 40))
        self.centralFrame.setMaximumSize(QSize(16777215, 42))
        self.centralFrame.setStyleSheet(u"background-color: rgba(27, 29, 35, 255)")
        self.centralFrame.setFrameShape(QFrame.NoFrame)
        self.centralFrame.setFrameShadow(QFrame.Raised)
        self.centralFrame.setContentsMargins(0, 0, 0, 0)

        """
        Title Frame, Label, and Layout
        """
        self.titleFrame = QFrame(self.centralFrame)
        self.sizePolicy.setHeightForWidth(self.titleFrame.sizePolicy().hasHeightForWidth())
        self.titleFrame.setSizePolicy(self.sizePolicy)
        self.titleFrame.setFrameShape(QFrame.NoFrame)
        self.titleFrame.setFrameShadow(QFrame.Raised)
        self.titleFrame.setContentsMargins(0, 0, 0, 0)
        self.titleFrame.setStyleSheet("border: none;")

        self.label = TitleBarLabel(self.titleFrame)

        self.titleFrameLayout = QHBoxLayout(self.titleFrame)
        self.titleFrameLayout.setSpacing(0)
        self.titleFrameLayout.setContentsMargins(5, 0, 10, 0)

        self.titleFrameLayout.addWidget(self.label)

        """
        Buttons Frame, Buttons, and Layout
        """
        self.btnsFrame = QFrame(self.centralFrame)
        self.sizePolicy.setHeightForWidth(self.btnsFrame.sizePolicy().hasHeightForWidth())
        self.btnsFrame.setSizePolicy(self.sizePolicy)
        self.btnsFrame.setMaximumSize(QSize(120, 16777215))
        self.btnsFrame.setFrameShape(QFrame.NoFrame)
        self.btnsFrame.setFrameShadow(QFrame.Raised)
        self.btnsFrame.setContentsMargins(0, 0, 0, 0)
        self.btnsFrame.setStyleSheet("border: none;")

        self.minimizeBtn = MinimizeButton(self.btnsFrame)
        self.resizeBtn = ResizeButton(self.btnsFrame)
        self.closeBtn = CloseButton(self.btnsFrame)

        self.btnsLayout = QHBoxLayout(self.btnsFrame)
        self.btnsLayout.addWidget(self.minimizeBtn)
        self.btnsLayout.addWidget(self.resizeBtn)
        self.btnsLayout.addWidget(self.closeBtn)
        self.btnsLayout.setSpacing(0)
        self.btnsLayout.setContentsMargins(0, 0, 0, 0)

        """
        Central Layout
        """
        self.centralLayout = QHBoxLayout(self.centralFrame)
        self.centralLayout.addWidget(self.titleFrame)
        self.centralLayout.addWidget(self.btnsFrame, 0, Qt.AlignRight)
        self.centralLayout.setSpacing(0)
        self.centralLayout.setContentsMargins(0, 0, 0, 0)

        """
        UI Layout
        """
        self.uiLayout = QVBoxLayout(self)
        self.uiLayout.addWidget(self.centralFrame)
        self.uiLayout.setContentsMargins(0, 0, 0, 0)

        self.setLayout(self.uiLayout)

    def mouseMoveEvent(self, ev):
        self.ui_main.moveWindow(ev)

    def resizeClicked(self):
        if self.ui_main.windowState() == Qt.WindowMaximized:
            self.ui_main.showNormal()
            self.setToolTip("Maximize")
            self.resizeBtn.setIcon(QtGui.QIcon(resource_path("icons/cil-window-maximize.png")))

        else:
            self.ui_main.showMaximized()
            self.setToolTip("Restore")
            self.resizeBtn.setIcon(QtGui.QIcon(resource_path("icons/cil-window-restore.png")))
Esempio n. 27
0
class ToolBar(QFrame):
    def __init__(self, main_page: QFrame, parent: QFrame):
        super(ToolBar, self).__init__()
        self.is_first: bool = False
        self.main_page: QFrame = main_page
        self.parent: QFrame = parent
        self.default_screen_width: int = self.main_page.width()
        self.default_screen_height: int = self.main_page.height()
        self.is_drag: bool = True

    def setup_ui(self, containers: QFrame):
        #  self.pressed:bool = False
        # self.toolbar_frame = QFrame(containers)
        self.setMaximumSize(QSize(16777215, 41))
        self.setLayoutDirection(Qt.RightToLeft)
        self.setObjectName(ToolBarStyles.toolbar_minimize_style[0])
        self.setStyleSheet(ToolBarStyles.toolbar_minimize_style[1])

        self.toolbar_vlayout = QVBoxLayout(self)
        self.toolbar_vlayout.setContentsMargins(0, 0, 5, 0)
        self.toolbar_vlayout.setSpacing(0)
        self.toolbar_vlayout.setObjectName("toolbar_vlayout")
        self.toolbar_components_frame = QFrame(self)
        self.toolbar_components_frame.setMinimumSize(QSize(111, 41))
        self.toolbar_components_frame.setMaximumSize(QSize(111, 41))
        self.toolbar_components_frame.setFrameShape(QFrame.StyledPanel)
        self.toolbar_components_frame.setFrameShadow(QFrame.Raised)
        self.toolbar_components_frame.setObjectName("toolbar_components_frame")
        self.toolbar_components_vlayout = QHBoxLayout(self.toolbar_components_frame)
        self.toolbar_components_vlayout.setContentsMargins(0, 0, 0, 0)
        self.toolbar_components_vlayout.setObjectName("toolbar_components_vlayout")

        self.btn_close = QLabel(self.toolbar_components_frame)
        self.btn_close.setGeometry(QRect(1310, 5, 23, 23))
        self.btn_close.setMaximumSize(23, 23)
        self.btn_close.setObjectName(ToolBarStyles.btn_close_style[0])
        self.btn_close.setCursor(QCursor(Qt.PointingHandCursor))
        UtilsClick.clickable(self.btn_close).connect(lambda: QCoreApplication.exit())
        self.btn_close.setStyleSheet(ToolBarStyles.btn_close_style[1])
        self.toolbar_components_vlayout.addWidget(self.btn_close)

        self.btn_maximize = QLabel(self.toolbar_components_frame)
        self.btn_maximize.setGeometry(QRect(1280, 5, 23, 23))
        self.btn_maximize.setMaximumSize(23, 23)
        UtilsClick.clickable(self.btn_maximize).connect(partial(self.maximize_window))
        self.btn_maximize.setCursor(QCursor(Qt.PointingHandCursor))
        self.btn_maximize.setObjectName(ToolBarStyles.btn_maximize_style[0])
        self.btn_maximize.setStyleSheet(ToolBarStyles.btn_maximize_style[1])
        self.toolbar_components_vlayout.addWidget(self.btn_maximize)

        self.btn_minimize = QLabel(self.toolbar_components_frame)
        self.btn_minimize.setGeometry(QRect(1250, 5, 23, 23))
        self.btn_minimize.setMaximumSize(23, 23)
        self.btn_minimize.setCursor(QCursor(Qt.PointingHandCursor))
        UtilsClick.clickable(self.btn_minimize).connect(self.minimized_window)
        self.btn_minimize.setObjectName(ToolBarStyles.btn_minimize_style[0])
        self.btn_minimize.setStyleSheet(ToolBarStyles.btn_minimize_style[1])
        self.toolbar_components_vlayout.addWidget(self.btn_minimize)
        self.toolbar_vlayout.addWidget(self.toolbar_components_frame)

    def maximize_window(self, x=None, y=None):
        """this method for maximize windows
        """
        self.is_first = not self.is_first
        window_width: int = int(QDesktopWidget().screenGeometry(-1).width())
        window_height: int = int(QDesktopWidget().screenGeometry(-1).height())

        if self.is_first:

            # when window from minimize to maximize
            self.parent.setGeometry(0, 0, window_width, window_height)
            self.parent.lay.setContentsMargins(0, 0, 0, 0)
            self.main_page.setStyleSheet(ToolBarStyles.main_page_maximaize_style)
            self.main_page.navigation_menu.setStyleSheet(ToolBarStyles.navigation_maximaize_menu)
            self.main_page.li_hacktor.setGeometry(QRect(25, self.main_page.height(), 22, 33))
            self.setStyleSheet(ToolBarStyles.toolbar_maximaize_style)

        else:
            # when window from minimize maximize to  minimize

            if x is None or y is None:
                """
                    window minimized go to the center on Screen
                """
                x_window: int = int((window_width - self.default_screen_width) / 2) - 50
                y_window: int = int((window_height - self.default_screen_height) / 2) - 50
                self.parent.setGeometry(x_window, y_window, self.default_screen_width, self.default_screen_height)
            else:
                """
                    window minimized go to client drag position
                """
                self.parent.setGeometry(x, y, self.default_screen_width, self.default_screen_height)

            # set setting when minimize
            self.parent.lay.setContentsMargins(50, 50, 50, 50)
            self.main_page.setStyleSheet(ToolBarStyles.main_page_minimaize_style)
            self.main_page.navigation_menu.setStyleSheet(ToolBarStyles.navigation_minimaize_menu)
            self.setStyleSheet(ToolBarStyles.toolbar_minimize_style[1])
            # hacktor-icon end of navigation menu
            is_extra_screen, extra_screen_width, extra_screen_height = MediaScreen().is_extra_large()
            if is_extra_screen:
                self.main_page.li_hacktor.setGeometry(QRect(25, self.main_page.height() - 80, 22, 33))
            else:
                if extra_screen_height > 800:
                    self.main_page.li_hacktor.setGeometry(QRect(25, self.main_page.height() - 80, 22, 33))
                else:
                    self.main_page.li_hacktor.setGeometry(QRect(25, self.main_page.height(), 22, 33))
        # hide all frame
        self.main_page.menu.hide_all_frame()
        self.parent.setCursor(Qt.ArrowCursor)

    def minimized_window(self):
        """
        this method for do minimize window
        """
        self.parent.setCursor(Qt.ArrowCursor)
        self.parent.setWindowState(Qt.WindowMinimized)

    def mousePressEvent(self, event):
        """this method for when mouse pressed
        """
        if event.buttons() == Qt.LeftButton:
            self.parent.oldPos = event.globalPos()
            # component buttons in tool bar not draggable
            if event.pos().x() <= self.main_page.width() - self.toolbar_components_frame.width():
                self.is_drag = True
            else:
                self.is_drag = False
        else:
            super().mousePressEvent(event)

    def mouseMoveEvent(self, event):
        """this method for when mouse drag and moving
        """
        if event.buttons() == Qt.LeftButton and self.is_drag:
            self.parent.setCursor(Qt.ClosedHandCursor)
            delta = QPoint(event.globalPos() - self.parent.oldPos)
            self.parent.move(self.parent.x() + delta.x(), self.parent.y() + delta.y())
            self.parent.oldPos = event.globalPos()

            if self.is_first:

                x_location = event.pos().x()

                if x_location >= 900:
                    self.maximize_window(x=x_location - (self.parent.width() / 2), y=event.pos().y() - 74)
                else:
                    self.maximize_window(x=(self.parent.x() + delta.x()) - 100, y=event.pos().y() - 74)

        else:
            super().mouseMoveEvent(event)

    def mouseReleaseEvent(self, event):
        """this method for when mouse drop
        """
        self.parent.offset = None
        self.parent.setCursor(Qt.ArrowCursor)
        super().mouseReleaseEvent(event)