[main] file open dlg, open,close and quit working

This commit is contained in:
Jan Grewe 2020-12-27 12:28:51 +01:00
parent 6d5d31b83c
commit dbea725e75

View File

@ -1,8 +1,8 @@
import sys import sys
from PyQt5.QtWidgets import QFrame, QLabel, QListWidget, QMainWindow, QMenuBar, QStackedLayout, QToolBar, QAction, QStatusBar, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy from typing import Hashable
from PyQt5.QtWidgets import QFileDialog, QFrame, QLabel, QListWidget, QMainWindow, QMenuBar, QStackedLayout, QToolBar, QAction, QStatusBar, QVBoxLayout, QWidget, QGridLayout, QSpacerItem, QSizePolicy
from PyQt5.QtGui import QIcon, QPixmap, QKeySequence from PyQt5.QtGui import QIcon, QPixmap, QKeySequence
from PyQt5.QtCore import Qt, QSize from PyQt5.QtCore import Qt, QSize, QSettings
import typing
from file_handler import FileHandler from file_handler import FileHandler
@ -18,8 +18,8 @@ class NixView(QMainWindow):
self.setMenuBar(QMenuBar(self)) self.setMenuBar(QMenuBar(self))
self.create_actions() self.create_actions()
cw = CentralWidget(self) self._cw = CentralWidget(self)
self.setCentralWidget(cw) self.setCentralWidget(self._cw)
self.show() self.show()
def create_actions(self): def create_actions(self):
@ -41,7 +41,6 @@ class NixView(QMainWindow):
self.create_toolbar() self.create_toolbar()
self.create_menu() self.create_menu()
def create_toolbar(self): def create_toolbar(self):
self._toolbar = QToolBar("My main toolbar") self._toolbar = QToolBar("My main toolbar")
self._toolbar.setIconSize(QSize(32, 32)) self._toolbar.setIconSize(QSize(32, 32))
@ -51,7 +50,6 @@ class NixView(QMainWindow):
self._toolbar.addAction(self._quit_action) self._toolbar.addAction(self._quit_action)
self.addToolBar(self._toolbar) self.addToolBar(self._toolbar)
def create_menu(self): def create_menu(self):
menu = self.menuBar() menu = self.menuBar()
file_menu = menu.addMenu("&File") file_menu = menu.addMenu("&File")
@ -61,12 +59,20 @@ class NixView(QMainWindow):
self.setMenuBar(menu) self.setMenuBar(menu)
def on_file_open(self, s): def on_file_open(self, s):
dlg = QFileDialog(self, 'Open nix data file', '', "NIX files (*.h5 *.nix)")
dlg.setFileMode(QFileDialog.ExistingFile)
filenames = None
if dlg.exec_():
filenames = dlg.selectedFiles()
success, msg = self._file_handler.open("nix_test.h5") success, msg = self._file_handler.open("nix_test.h5")
self.statusBar().showMessage(msg, 5000) self.statusBar().showMessage(msg, 5000)
self._file_close_action.setEnabled(success) self._file_close_action.setEnabled(success)
self._cw.show_file_content()
def on_file_close(self, s): def on_file_close(self, s):
self._file_handler.close() self._file_handler.close()
self._cw.reset()
self._file_close_action.setEnabled(False)
self.statusBar().showMessage("Successfully closed current file", 1000) self.statusBar().showMessage("Successfully closed current file", 1000)
def on_quit(self, s): def on_quit(self, s):
@ -80,11 +86,32 @@ class CentralWidget(QWidget):
super().__init__(parent=parent) super().__init__(parent=parent)
splash = SplashScreen() splash = SplashScreen()
stack = QStackedLayout(self) self._file_view = FileView(self)
stack.addWidget(splash) self._stack = QStackedLayout(self)
self.setLayout(stack) self._stack.addWidget(splash)
self._stack.addWidget(self._file_view)
self.setLayout(self._stack)
self.setStyleSheet("background-color: white;") self.setStyleSheet("background-color: white;")
def show_file_content(self):
self._stack.setCurrentIndex(1)
def reset(self):
self._file_view.reset()
self._stack.setCurrentIndex(0)
class FileView(QWidget):
def __init__(self, parent=None) -> None:
super().__init__(parent=parent)
self.setLayout(QVBoxLayout())
self.layout().addWidget(QLabel("FileView"))
self._file_handler = FileHandler()
def reset(self):
print("FileView ", self._file_handler.is_valid)
pass
class SplashScreen(QWidget): class SplashScreen(QWidget):