[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
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.QtCore import Qt, QSize
import typing
from PyQt5.QtCore import Qt, QSize, QSettings
from file_handler import FileHandler
@ -18,8 +18,8 @@ class NixView(QMainWindow):
self.setMenuBar(QMenuBar(self))
self.create_actions()
cw = CentralWidget(self)
self.setCentralWidget(cw)
self._cw = CentralWidget(self)
self.setCentralWidget(self._cw)
self.show()
def create_actions(self):
@ -39,8 +39,7 @@ class NixView(QMainWindow):
self._quit_action.triggered.connect(self.on_quit)
self.create_toolbar()
self.create_menu()
self.create_menu()
def create_toolbar(self):
self._toolbar = QToolBar("My main toolbar")
@ -51,7 +50,6 @@ class NixView(QMainWindow):
self._toolbar.addAction(self._quit_action)
self.addToolBar(self._toolbar)
def create_menu(self):
menu = self.menuBar()
file_menu = menu.addMenu("&File")
@ -61,12 +59,20 @@ class NixView(QMainWindow):
self.setMenuBar(menu)
def on_file_open(self, s):
success, msg = self._file_handler.open("nix_test.h5")
self.statusBar().showMessage(msg, 5000)
self._file_close_action.setEnabled(success)
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")
self.statusBar().showMessage(msg, 5000)
self._file_close_action.setEnabled(success)
self._cw.show_file_content()
def on_file_close(self, s):
self._file_handler.close()
self._cw.reset()
self._file_close_action.setEnabled(False)
self.statusBar().showMessage("Successfully closed current file", 1000)
def on_quit(self, s):
@ -80,11 +86,32 @@ class CentralWidget(QWidget):
super().__init__(parent=parent)
splash = SplashScreen()
stack = QStackedLayout(self)
stack.addWidget(splash)
self.setLayout(stack)
self._file_view = FileView(self)
self._stack = QStackedLayout(self)
self._stack.addWidget(splash)
self._stack.addWidget(self._file_view)
self.setLayout(self._stack)
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):