[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.splashscreen import SplashScreen
from nixview.ui.filescreen import FileScreen
from nixview.ui.tablescreen import TableScreen
class CentralWidget(QWidget):
@ -13,10 +14,14 @@ class CentralWidget(QWidget):
self._file_view = FileScreen(self)
self._plot_screen = PlotScreen(self)
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.addWidget(self._splash)
self._stack.addWidget(self._file_view)
self._stack.addWidget(self._plot_screen)
self._stack.addWidget(self._table_screen)
self.setLayout(self._stack)
def show_file_content(self):
@ -27,9 +32,16 @@ class CentralWidget(QWidget):
self._stack.setCurrentIndex(2)
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):
self._stack.setCurrentIndex(1)
def on_table_close(self):
self._stack.setCurrentIndex(1)
def reset(self):
self._file_view.reset()
self._splash.reset()

View File

@ -69,7 +69,7 @@ class NixView(QMainWindow):
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_file_close)
self._table_action.triggered.connect(self.on_item_show_table)
self._about_action = QAction("about")
self._about_action.setStatusTip("Show about dialog")
@ -167,6 +167,10 @@ class NixView(QMainWindow):
if self._current_item is not None:
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):
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