[table view] basic infrastructure

This commit is contained in:
Jan Grewe 2021-04-06 12:53:25 +02:00
parent 703b647321
commit ec1fca7d90
3 changed files with 49 additions and 1 deletions

View File

@ -3,6 +3,7 @@ from PyQt5.QtWidgets import QStackedLayout, QWidget
from nixview.ui.plotscreen import PlotScreen from nixview.ui.plotscreen import PlotScreen
from nixview.ui.splashscreen import SplashScreen from nixview.ui.splashscreen import SplashScreen
from nixview.ui.filescreen import FileScreen from nixview.ui.filescreen import FileScreen
from nixview.ui.tablescreen import TableScreen
class CentralWidget(QWidget): class CentralWidget(QWidget):
@ -13,10 +14,14 @@ class CentralWidget(QWidget):
self._file_view = FileScreen(self) self._file_view = FileScreen(self)
self._plot_screen = PlotScreen(self) self._plot_screen = PlotScreen(self)
self._plot_screen.close_signal.connect(self.on_plot_close) self._plot_screen.close_signal.connect(self.on_plot_close)
self._table_screen = TableScreen(self)
self._table_screen.close_signal.connect(self.on_table_close)
self._stack = QStackedLayout(self) self._stack = QStackedLayout(self)
self._stack.addWidget(self._splash) self._stack.addWidget(self._splash)
self._stack.addWidget(self._file_view) self._stack.addWidget(self._file_view)
self._stack.addWidget(self._plot_screen) self._stack.addWidget(self._plot_screen)
self._stack.addWidget(self._table_screen)
self.setLayout(self._stack) self.setLayout(self._stack)
def show_file_content(self): def show_file_content(self):
@ -27,9 +32,16 @@ class CentralWidget(QWidget):
self._stack.setCurrentIndex(2) self._stack.setCurrentIndex(2)
self._plot_screen.plot(item_descriptor) self._plot_screen.plot(item_descriptor)
def show_table(self, item_descriptor):
self._stack.setCurrentIndex(3)
self._table_screen.show(item_descriptor)
def on_plot_close(self): def on_plot_close(self):
self._stack.setCurrentIndex(1) self._stack.setCurrentIndex(1)
def on_table_close(self):
self._stack.setCurrentIndex(1)
def reset(self): def reset(self):
self._file_view.reset() self._file_view.reset()
self._splash.reset() self._splash.reset()

View File

@ -69,7 +69,7 @@ class NixView(QMainWindow):
self._table_action.setStatusTip("Show data as table") self._table_action.setStatusTip("Show data as table")
self._table_action.setShortcut(QKeySequence("Ctrl+t")) self._table_action.setShortcut(QKeySequence("Ctrl+t"))
self._table_action.setEnabled(False) self._table_action.setEnabled(False)
# self._table_action.triggered.connect(self.on_file_close) self._table_action.triggered.connect(self.on_item_show_table)
self._about_action = QAction("about") self._about_action = QAction("about")
self._about_action.setStatusTip("Show about dialog") self._about_action.setStatusTip("Show about dialog")
@ -167,6 +167,10 @@ class NixView(QMainWindow):
if self._current_item is not None: if self._current_item is not None:
self._cw.plot_item(self._current_item.node_descriptor) self._cw.plot_item(self._current_item.node_descriptor)
def on_item_show_table(self, s):
if self._current_item is not None:
self._cw.show_table(self._current_item.node_descriptor)
def on_plot_error(self, s): def on_plot_error(self, s):
self.statusBar().showMessage(s, 5000) self.statusBar().showMessage(s, 5000)

32
nixview/ui/tablescreen.py Normal file
View File

@ -0,0 +1,32 @@
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QPushButton, QTableWidget
from PyQt5.QtCore import pyqtSignal, Qt
from nixview.util.file_handler import FileHandler
class TableScreen(QWidget):
close_signal = pyqtSignal()
def __init__(self, parent=None) -> None:
super().__init__(parent=parent)
self._file_handler = FileHandler()
self.table = QTableWidget()
close_btn = QPushButton("close")
close_btn.clicked.connect(self.on_close)
self.setLayout(QVBoxLayout())
self.layout().addWidget(self.table)
self.layout().addWidget(close_btn)
self._data_view = None
self._software_slide = False
self.plotter = None
def on_close(self):
self.close_signal.emit()
def show(self, item_descriptor):
print("Table show")
pass