[FileView] place trees in splitter

This commit is contained in:
Jan Grewe 2021-01-01 17:05:18 +01:00
parent 9730c3d329
commit dae8125999

View File

@ -32,44 +32,55 @@ class CentralWidget(QWidget):
class FileView(QWidget): class FileView(QWidget):
icon_size = QSize(30, 30)
def __init__(self, parent=None) -> None: def __init__(self, parent=None) -> None:
super().__init__(parent=parent) super().__init__(parent=parent)
self._file_handler = FileHandler() self._file_handler = FileHandler()
grid = QGridLayout() vbox = QVBoxLayout()
grid.addWidget(QLabel("FileView"), 0, 0, 1, 3) self.setLayout(vbox)
self.setLayout(grid) 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("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)
mdata_group = QGroupBox("Metadata")
mdata_group.setLayout(QVBoxLayout())
mdata_group.layout().addWidget(self._mdata_tree)
self._data_tree = QTreeView() self._data_tree = QTreeView(self)
self._data_tree.expanded.connect(self.dataTreeResize) self._data_tree.expanded.connect(self.dataTreeResize)
self._data_tree.collapsed.connect(self.dataTreeResize) self._data_tree.collapsed.connect(self.dataTreeResize)
self._data_tree.setAlternatingRowColors(True) self._data_tree.setAlternatingRowColors(True)
self._data_tree.setUniformRowHeights(True) # Allows for scrolling optimizations. self._data_tree.setUniformRowHeights(True) # Allows for scrolling optimizations.
self._data_tree.setWindowTitle("Simple Tree Model") self._data_tree.setWindowTitle("Data Tree")
self._data_tree.setIconSize(QSize(20,20)) 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 = self._data_tree.header()
header.setStretchLastSection(False) header.setStretchLastSection(False)
header.setSectionResizeMode(1, QHeaderView.ResizeToContents) header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
header.setSectionResizeMode(2, QHeaderView.ResizeToContents) header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
header.setSectionResizeMode(0, QHeaderView.Stretch) header.setSectionResizeMode(0, QHeaderView.Stretch)
grid.addWidget(self._data_tree, 2, 0, 2, 3)
self._mdata_tree = QTreeView()
self._mdata_tree.expanded.connect(self.metadataTreeResize)
self._mdata_tree.collapsed.connect(self.metadataTreeResize)
self._mdata_tree.setAlternatingRowColors(True) data_group = QGroupBox("Data")
self._mdata_tree.setUniformRowHeights(True) # Allows for scrolling optimizations. data_vbox = QVBoxLayout()
self._mdata_tree.setWindowTitle("Simple Tree Model") data_vbox.addWidget(self._data_tree)
self._mdata_tree.setIconSize(QSize(20,20)) data_group.setLayout(data_vbox)
mheader = self._mdata_tree.header() splitter.insertWidget(0, mdata_group)
mheader.setStretchLastSection(False) splitter.insertWidget(1, data_group)
mheader.setSectionResizeMode(1, QHeaderView.ResizeToContents) vbox.addWidget(splitter)
mheader.setSectionResizeMode(2, QHeaderView.ResizeToContents)
mheader.setSectionResizeMode(0, QHeaderView.Stretch)
grid.addWidget(self._mdata_tree, 1, 0, 1, 3)
def metadataTreeResize(self, index): def metadataTreeResize(self, index):
self._mdata_tree.resizeColumnToContents(index.column()) self._mdata_tree.resizeColumnToContents(index.column())