Advertisement
Guest User

main_window.py

a guest
May 20th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.92 KB | None | 0 0
  1. from PySide2.QtCore import *
  2. from PySide2.QtCore import Slot, Signal
  3. from PySide2.QtWidgets import *
  4.  
  5. def qt_splitter(
  6.         *objects,
  7.         orientation: Qt.Orientation = Qt.Vertical,
  8.         sizes: list = None
  9. ) -> QSplitter:
  10.     splitter = QSplitter(orientation)
  11.     for obj in objects:
  12.         if isinstance(obj, QWidget):
  13.             splitter.addWidget(obj)
  14.         if isinstance(obj, QLayout):
  15.             wdg = QWidget()
  16.             wdg.setLayout(obj)
  17.             splitter.addWidget(wdg)
  18.  
  19.         if sizes is not None:
  20.             splitter.setSizes(sizes)
  21.  
  22.     return splitter
  23.  
  24.  
  25. class MainWindow(QMainWindow):
  26.  
  27.     def __init__(self, parent=None):
  28.         super().__init__(parent)
  29.  
  30.         # Actions
  31.         open_file_act: QAction = QAction(self.tr("Open file..."))
  32.         open_file_act.triggered.connect(self.__open_file_slot)
  33.  
  34.         # Menu
  35.         self.menubar: QMenuBar = QMenuBar(self)
  36.         #
  37.         file_menu: QMenu = QMenu(self.tr("File"), self.menubar)
  38.         file_menu.addAction(open_file_act)
  39.         #
  40.         self.menubar.addMenu(file_menu)
  41.  
  42.         # Toolbar
  43.         self.toolbar: QToolBar = QToolBar(self)
  44.         self.toolbar.toggleViewAction().setText(self.tr("Show/hide tool bar"))
  45.         self.toolbar.setMovable(False)
  46.         #
  47.         self.toolbar.addAction(open_file_act)
  48.  
  49.         self.navigation: QTreeWidget = QTreeWidget(self)
  50.  
  51.         self.container: QStackedWidget = QStackedWidget(self)
  52.  
  53.         self.statusbar: QStatusBar = QStatusBar(self)
  54.  
  55.         # Link
  56.         self.setMenuBar(self.menubar)
  57.         self.addToolBar(self.toolbar)
  58.         self.setCentralWidget(
  59.             qt_splitter(
  60.                 self.navigation,
  61.                 self.container,
  62.                 orientation=Qt.Horizontal,
  63.                 sizes=[200, 1000]
  64.             )
  65.         )
  66.         self.setStatusBar(self.statusbar)
  67.  
  68.     @Slot()
  69.     def __open_file_slot(self):
  70.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement