From dae8125999ed67e22191a2846115dc6fc1019397 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Fri, 1 Jan 2021 17:05:18 +0100 Subject: [PATCH] [FileView] place trees in splitter --- central_widget.py | 61 ++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/central_widget.py b/central_widget.py index 613925c..d76c1ad 100644 --- a/central_widget.py +++ b/central_widget.py @@ -32,44 +32,55 @@ class CentralWidget(QWidget): class FileView(QWidget): - + icon_size = QSize(30, 30) def __init__(self, parent=None) -> None: super().__init__(parent=parent) self._file_handler = FileHandler() - - grid = QGridLayout() - grid.addWidget(QLabel("FileView"), 0, 0, 1, 3) - self.setLayout(grid) - - self._data_tree = QTreeView() - self._data_tree.expanded.connect(self.dataTreeResize) - self._data_tree.collapsed.connect(self.dataTreeResize) - self._data_tree.setAlternatingRowColors(True) - self._data_tree.setUniformRowHeights(True) # Allows for scrolling optimizations. - self._data_tree.setWindowTitle("Simple Tree Model") - self._data_tree.setIconSize(QSize(20,20)) - header = self._data_tree.header() - header.setStretchLastSection(False) - header.setSectionResizeMode(1, QHeaderView.ResizeToContents) - header.setSectionResizeMode(2, QHeaderView.ResizeToContents) - header.setSectionResizeMode(0, QHeaderView.Stretch) - grid.addWidget(self._data_tree, 2, 0, 2, 3) - self._mdata_tree = QTreeView() + vbox = QVBoxLayout() + self.setLayout(vbox) + splitter = QSplitter(Qt.Vertical) + + self._mdata_tree = QTreeView(self) self._mdata_tree.expanded.connect(self.metadataTreeResize) self._mdata_tree.collapsed.connect(self.metadataTreeResize) - self._mdata_tree.setAlternatingRowColors(True) self._mdata_tree.setUniformRowHeights(True) # Allows for scrolling optimizations. - self._mdata_tree.setWindowTitle("Simple Tree Model") - self._mdata_tree.setIconSize(QSize(20,20)) - + self._mdata_tree.setWindowTitle("Metadata Tree") + self._mdata_tree.setIconSize(self.icon_size) mheader = self._mdata_tree.header() mheader.setStretchLastSection(False) mheader.setSectionResizeMode(1, QHeaderView.ResizeToContents) mheader.setSectionResizeMode(2, QHeaderView.ResizeToContents) mheader.setSectionResizeMode(0, QHeaderView.Stretch) - grid.addWidget(self._mdata_tree, 1, 0, 1, 3) + + mdata_group = QGroupBox("Metadata") + mdata_group.setLayout(QVBoxLayout()) + mdata_group.layout().addWidget(self._mdata_tree) + + self._data_tree = QTreeView(self) + self._data_tree.expanded.connect(self.dataTreeResize) + self._data_tree.collapsed.connect(self.dataTreeResize) + self._data_tree.setAlternatingRowColors(True) + self._data_tree.setUniformRowHeights(True) # Allows for scrolling optimizations. + self._data_tree.setWindowTitle("Data Tree") + self._data_tree.setIconSize(self.icon_size) + self._data_tree.setSelectionBehavior(QAbstractItemView.SelectItems) + self._data_tree.setSelectionMode(QAbstractItemView.SingleSelection) + header = self._data_tree.header() + header.setStretchLastSection(False) + header.setSectionResizeMode(1, QHeaderView.ResizeToContents) + header.setSectionResizeMode(2, QHeaderView.ResizeToContents) + header.setSectionResizeMode(0, QHeaderView.Stretch) + + data_group = QGroupBox("Data") + data_vbox = QVBoxLayout() + data_vbox.addWidget(self._data_tree) + data_group.setLayout(data_vbox) + + splitter.insertWidget(0, mdata_group) + splitter.insertWidget(1, data_group) + vbox.addWidget(splitter) def metadataTreeResize(self, index): self._mdata_tree.resizeColumnToContents(index.column())