from PyQt6.QtWidgets import * from PyQt6.QtCore import * from bigtext import BigText from filterviewsyncer import FilterViewSyncer from filterwidget import FilterWidget from logFileModel import LogFileModel class FullTabWidget(QWidget): def __init__(self, model: LogFileModel): super(FullTabWidget, self).__init__() self._model = model self.file_view = BigText(model) self.filter_hit_view = FilterWidget(self._model) self.filter_view_syncer = FilterViewSyncer(self.file_view) self.filter_hit_view.add_line_click_listener(self.filter_view_syncer.click_listener) self.filter_hit_view.add_filter_match_found_listener(self.filter_view_syncer.match_found) self.layout = QVBoxLayout(self) self.layout.setContentsMargins(0, 0, 0, 0) splitter = QSplitter() splitter.setOrientation(Qt.Orientation.Vertical) splitter.setHandleWidth(5) # splitter.setStyleSheet("QSplitter::handle{background: #cccccc;}") splitter.addWidget(self.file_view) splitter.addWidget(self.filter_hit_view) self.layout.addWidget(splitter) def get_file(self) -> str: return self.file_view.get_file() def destruct(self): self.file_view.destruct() self.filter_hit_view.destruct()