コード例 #1
0
ファイル: ImScrMainView.py プロジェクト: stafak/ImSwitch
class ImScrMainView(QtWidgets.QMainWindow):
    """ Main view of imscripting. """

    sigNewFile = QtCore.Signal()
    sigOpenFile = QtCore.Signal()
    sigSaveFile = QtCore.Signal()
    sigSaveAsFile = QtCore.Signal()
    sigClosing = QtCore.Signal()

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('Scripting')

        # Actions in menubar
        menuBar = self.menuBar()
        file = menuBar.addMenu('&File')

        self.newFileAction = QtWidgets.QAction('New…', self)
        self.newFileAction.setShortcut('Ctrl+N')
        self.newFileAction.triggered.connect(self.sigNewFile)
        file.addAction(self.newFileAction)
        self.openFileAction = QtWidgets.QAction('Open…', self)
        self.openFileAction.setShortcut('Ctrl+O')
        self.openFileAction.triggered.connect(self.sigOpenFile)
        file.addAction(self.openFileAction)
        self.saveFileAction = QtWidgets.QAction('Save', self)
        self.saveFileAction.setShortcut('Ctrl+S')
        self.saveFileAction.triggered.connect(self.sigSaveFile)
        file.addAction(self.saveFileAction)
        self.saveAsFileAction = QtWidgets.QAction('Save as…', self)
        self.saveAsFileAction.setShortcut('Ctrl+Shift+S')
        self.saveAsFileAction.triggered.connect(self.sigSaveAsFile)
        file.addAction(self.saveAsFileAction)

        # Main layout
        self.dockArea = DockArea()
        self.setCentralWidget(self.dockArea)

        self.editor = EditorView()
        self.editorDock = Dock('Script Editor')
        self.editorDock.addWidget(self.editor)
        self.dockArea.addDock(self.editorDock)

        self.files = FilesView()
        self.filesDock = Dock('Files')
        self.filesDock.addWidget(self.files)
        self.dockArea.addDock(self.filesDock, 'left', self.editorDock)

        self.console = ConsoleView()
        self.consoleDock = Dock('Console')
        self.consoleDock.addWidget(self.console)
        self.dockArea.addDock(self.consoleDock, 'right', self.editorDock)

        self.output = OutputView()
        self.outputDock = Dock('Output')
        self.outputDock.addWidget(self.output)
        self.dockArea.addDock(self.outputDock, 'bottom', self.editorDock)

        self.editorDock.setStretch(20, 30)

        self.showMaximized()

    def closeEvent(self, event):
        self.sigClosing.emit()
        event.accept()