125 lines
5.0 KiB
Python
125 lines
5.0 KiB
Python
from PyQt6.QtCore import QSize, Qt
|
|
from PyQt6.QtWidgets import QMainWindow, QWidget, QToolBar, QMenu, QMenuBar, QSizePolicy, QFileDialog
|
|
from PyQt6.QtGui import QKeySequence, QAction, QIcon
|
|
|
|
from fixtracks.centralwidget import CentralWidget
|
|
|
|
# Subclass QMainWindow to customize your application's main window
|
|
|
|
|
|
class MainWindow(QMainWindow):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.create_actions()
|
|
self._toolbar = None
|
|
cw = CentralWidget()
|
|
self.setCentralWidget(cw)
|
|
# cw.exit_signal.connect(self.exit_request)
|
|
|
|
def create_actions(self):
|
|
self._file_open_action = QAction(QIcon(":/icons/file_open"), "Open", self)
|
|
self._file_open_action.setStatusTip("Open nix file")
|
|
self._file_open_action.setShortcut(QKeySequence("Ctrl+o"))
|
|
self._file_open_action.triggered.connect(self.on_file_open)
|
|
|
|
# self._file_close_action = QAction(QIcon(":/icons/file_close"), "Close", self)
|
|
# self._file_close_action.setStatusTip("Close current nix file")
|
|
# self._file_close_action.setShortcut(QKeySequence("Ctrl+w"))
|
|
# self._file_close_action.setEnabled(False)
|
|
# self._file_close_action.triggered.connect(self.on_file_close)
|
|
|
|
self._quit_action = QAction(QIcon(":quit"), "Quit", self)
|
|
self._quit_action.setStatusTip("Close current file and quit")
|
|
self._quit_action.setShortcut(QKeySequence("Ctrl+q"))
|
|
self._quit_action.triggered.connect(self.exit_request)
|
|
|
|
# self._plot_action = QAction(QIcon(":/icons/show_plot"), "Plot", self)
|
|
# self._plot_action.setStatusTip("Plot currently selected entity")
|
|
# self._plot_action.setShortcut(QKeySequence("Ctrl+p"))
|
|
# self._plot_action.setEnabled(False)
|
|
# self._plot_action.triggered.connect(self.on_item_plot)
|
|
|
|
# self._table_action = QAction(QIcon(":/icons/show_table"), "Show table", self)
|
|
# self._table_action.setStatusTip("Show data as table")
|
|
# self._table_action.setShortcut(QKeySequence("Ctrl+t"))
|
|
# self._table_action.setEnabled(False)
|
|
# self._table_action.triggered.connect(self.on_item_show_table)
|
|
|
|
self._about_action = QAction("about")
|
|
self._about_action.setStatusTip("Show about dialog")
|
|
self._about_action.setEnabled(True)
|
|
self._about_action.triggered.connect(self.on_about)
|
|
|
|
self._help_action = QAction(QIcon(":help"), "help")
|
|
self._help_action.setStatusTip("Show help dialog")
|
|
self._help_action.setShortcut(QKeySequence("F1"))
|
|
|
|
self._help_action.setEnabled(True)
|
|
self._help_action.triggered.connect(self.on_help)
|
|
|
|
self.create_toolbar()
|
|
self.create_menu()
|
|
|
|
def create_menu(self):
|
|
menu = self.menuBar()
|
|
file_menu = menu.addMenu("&File")
|
|
file_menu.addAction(self._file_open_action)
|
|
# file_menu.addAction(self._file_close_action)
|
|
file_menu.addSeparator()
|
|
file_menu.addAction(self._quit_action)
|
|
|
|
plot_menu = menu.addMenu("&Plot")
|
|
# plot_menu.addAction(self._plot_action)
|
|
# plot_menu.addAction(self._table_action)
|
|
|
|
help_menu = menu.addMenu("&Help")
|
|
help_menu.addAction(self._about_action)
|
|
help_menu.addAction(self._help_action)
|
|
self.setMenuBar(menu)
|
|
|
|
def create_toolbar(self):
|
|
self._toolbar = QToolBar("My main toolbar")
|
|
#self._toolbar.setStyleSheet("QToolButton:!hover {background-color:none}")
|
|
self._toolbar.setAllowedAreas(Qt.ToolBarArea.LeftToolBarArea | Qt.ToolBarArea.TopToolBarArea)
|
|
self._toolbar.setFloatable(False)
|
|
self._toolbar.setIconSize(QSize(32, 32))
|
|
|
|
self._toolbar.addAction(self._file_open_action)
|
|
# self._toolbar.addAction(self._file_close_action)
|
|
self._toolbar.addSeparator()
|
|
# self._toolbar.addAction(self._plot_action)
|
|
# self._toolbar.addAction(self._table_action)
|
|
self._toolbar.addAction(self._help_action)
|
|
|
|
empty = QWidget()
|
|
empty.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
|
self._toolbar.addWidget(empty)
|
|
self._toolbar.addSeparator()
|
|
self._toolbar.addAction(self._quit_action)
|
|
|
|
# settings = QSettings(info.ORGANIZATION, info.NAME)
|
|
# tb_orientation = settings.value("app/toolbar_area", "left")
|
|
# self.addToolBar(Qt.LeftToolBarArea if tb_orientation == "left" else Qt.TopToolBarArea, self._toolbar)
|
|
# self._toolbar.topLevelChanged.connect(self.tb_changed)
|
|
# del settings
|
|
|
|
|
|
def on_file_open(self, s):
|
|
QFileDialog.getExistingDirectory()
|
|
# dlg = QFileDialog(self, 'Open dataset folder data file', '', "NIX files (*.h5 *.nix)")
|
|
# dlg.setFileMode(QFileDialog.ExistingFile)
|
|
# filenames = None
|
|
# if dlg.exec_():
|
|
# filenames = dlg.selectedFiles()
|
|
# self.open_file(filenames[0])
|
|
|
|
def on_about(self, s):
|
|
pass
|
|
|
|
def on_help(self, s):
|
|
pass
|
|
|
|
# @Slot(None)
|
|
def exit_request(self):
|
|
self.close()
|