예제 #1
0
class MainWindow(QMainWindow, Ui_MainWindow, PersistentGeometry):
    settingsDialog = None
    aboutDialog = None

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

        # UI
        self.setupUi(self)
        self.connectUI()
        self.preserveGeometry("main")

    def connectUI(self):
        # connect UI related signal/slot
        self.action_exit.triggered.connect(self.slotExit)
        self.action_setting.triggered.connect(self.slotSetting)
        self.action_showAbout.triggered.connect(self.slotShowAbout)

    # shorthand
    @property
    def page(self):
        return self.webView.page()

    @property
    def frame(self):
        return self.webView.page().mainFrame()

    # shorthand ends

    @pyqtSlot()
    def slotExit(self):
        app.quit()

    @pyqtSlot()
    def slotSetting(self):
        self.settingsDialog = SettingsDialog(self)
        self.settingsDialog.show()

    @pyqtSlot()
    def slotShowAbout(self):
        self.aboutDialog = AboutDialog(self)
        self.aboutDialog.show()

    def changeEvent(self, qEvent):
        if qEvent.type() == QEvent.WindowStateChange:
            if self.isMinimized():
                if app.settings.getbool("frontend", "minimizetosystray"):
                    self.setHidden(True)
        super().changeEvent(qEvent)

    def minimize(self):
        self.showMinimized()

    def restore(self):
        self.setWindowState(self.windowState() & ~Qt.WindowMinimized
                            | Qt.WindowActive)
        if self.isHidden():
            self.setHidden(False)
        self.raise_()

    def closeEvent(self, qCloseEvent):
        if app.settings.getbool("frontend", "closetominimize"):
            qCloseEvent.ignore()
            self.minimize()
        else:
            qCloseEvent.accept()
예제 #2
0
파일: main.py 프로젝트: 8cbx/XwareDesktop
class MainWindow(QMainWindow, Ui_MainWindow, PersistentGeometry):
    settingsDialog = None
    aboutDialog = None

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

        # UI
        self.setupUi(self)
        self.connectUI()
        self.preserveGeometry()

    def connectUI(self):
        # connect UI related signal/slot
        self.action_exit.triggered.connect(self.slotExit)
        self.action_setting.triggered.connect(self.slotSetting)
        self.action_showAbout.triggered.connect(self.slotShowAbout)

    # shorthand
    @property
    def page(self):
        return self.webView.page()

    @property
    def frame(self):
        return self.webView.page().mainFrame()
    # shorthand ends

    @pyqtSlot()
    def slotExit(self):
        app.quit()

    @pyqtSlot()
    def slotSetting(self):
        self.settingsDialog = SettingsDialog(self)
        self.settingsDialog.show()

    @pyqtSlot()
    def slotShowAbout(self):
        self.aboutDialog = AboutDialog(self)
        self.aboutDialog.show()

    def changeEvent(self, qEvent):
        if qEvent.type() == QEvent.WindowStateChange:
            if self.isMinimized():
                if app.settings.getbool("frontend", "minimizetosystray"):
                    self.setHidden(True)
        super().changeEvent(qEvent)

    def minimize(self):
        self.showMinimized()

    def restore(self):
        self.setWindowState(self.windowState() & ~Qt.WindowMinimized | Qt.WindowActive)
        if self.isHidden():
            self.setHidden(False)
        self.raise_()

    def closeEvent(self, qCloseEvent):
        if app.settings.getbool("frontend", "closetominimize"):
            qCloseEvent.ignore()
            self.minimize()
        else:
            qCloseEvent.accept()