nixview-python/main_window.py
2020-12-26 13:01:02 +01:00

89 lines
3.0 KiB
Python

from PyQt5.QtWidgets import QFrame, QLabel, QListWidget, QMainWindow, QStackedLayout, QToolBar, QAction, QStatusBar, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtCore import Qt, QSize
import typing
class NixView(QMainWindow):
def __init__(self, *args, **kwargs):
super(NixView, self).__init__(*args, **kwargs)
self.setWindowTitle("NixView")
cw = CentralWidget(self)
self.setCentralWidget(cw)
self.create_actions()
self.setStatusBar(QStatusBar(self))
def create_actions(self):
self._file_open_action = QAction(QIcon("./icons/nix_open.png"), "Open", self)
self._file_open_action.setStatusTip("Open nix file")
self._file_open_action.triggered.connect(self.onFileOpenClick)
self._file_close_action = QAction(QIcon("./icons/nix_close.png"), "Close", self)
self._file_close_action.setStatusTip("Close nix file")
self._file_close_action.triggered.connect(self.onFileCloseClick)
self.create_toolbar()
self.create_menu()
def create_toolbar(self):
self._toolbar = QToolBar("My main toolbar")
self._toolbar.setIconSize(QSize(32, 32))
self._toolbar.addAction(self._file_open_action)
self._toolbar.addAction(self._file_close_action)
self.addToolBar(self._toolbar)
def create_menu(self):
pass
def onFileOpenClick(self, s):
print("click", s)
def onFileCloseClick(self, s):
print("click", s)
class CentralWidget(QWidget):
def __init__(self, parent=None) -> None:
super().__init__(parent=parent)
splash = SplashScreen()
stack = QStackedLayout(self)
stack.addWidget(splash)
self.setLayout(stack)
self.setStyleSheet("background-color: white;")
class SplashScreen(QWidget):
def __init__(self, parent=None) -> None:
super().__init__(parent=parent)
layout = QGridLayout()
self.setLayout(layout)
self.setStyleSheet("background-color: red;")
label = QLabel()
label.setPixmap(QPixmap("./icons/nixview256.png"))
label.setAlignment(Qt.AlignCenter)
layout.addWidget(label, 1, 1)
verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
verticalSpacer2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
hSpacer = QSpacerItem(400, 20, QSizePolicy.Maximum, QSizePolicy.Expanding)
hSpacer2 = QSpacerItem(400, 20, QSizePolicy.Maximum, QSizePolicy.Expanding)
layout.addItem(verticalSpacer, 0, 1)
layout.addItem(verticalSpacer2, 2, 1)
layout.addItem(hSpacer, 1, 0)
layout.addItem(hSpacer2, 1, 2)
frame = QFrame()
l = QVBoxLayout()
l.addWidget(QLabel("Recently opened files:"))
l.addWidget(QListWidget())
frame.setLayout(l)
layout.addWidget(frame, 3, 1)