[main] file open dlg, open,close and quit working
This commit is contained in:
parent
6d5d31b83c
commit
dbea725e75
@ -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):
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user