fixtracks/fixtracks/fixtracks.py
2024-12-20 11:53:19 +01:00

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()