fixtracks/fixtracks/fixtracks.py

126 lines
5.0 KiB
Python

from PySide6.QtCore import QSize, Qt
from PySide6.QtWidgets import QMainWindow, QWidget, QToolBar, QMenu, QMenuBar, QSizePolicy, QFileDialog
from PySide6.QtGui import QKeySequence, QAction, QIcon
from fixtracks.centralwidget import CentralWidget
import fixtracks.resources
# 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/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()