89 lines
3.0 KiB
Python
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)
|
|
|