from PyQt6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QCheckBox from bigtext import BigText from logFileModel import LogFileModel class FilterWidget(QWidget): def __init__(self, model: LogFileModel): super(FilterWidget, self).__init__() self.model = model self.layout = QVBoxLayout(self) self.layout.setContentsMargins(0, 0, 0, 0) query_field = QLineEdit() query_field.textChanged.connect(self.query_changed) ignore_case = QCheckBox(self.tr("ignore case")) ignore_case.setChecked(True) is_regex = QCheckBox(self.tr("regex")) is_regex.setChecked(True) filter_bar = QWidget() filter_bar.layout = QHBoxLayout(filter_bar) filter_bar.layout.setContentsMargins(0,0,0,0) filter_bar.layout.addWidget(query_field) filter_bar.layout.addWidget(ignore_case) filter_bar.layout.addWidget(is_regex) self.hits_view = BigText(model) self.layout.addWidget(filter_bar) self.layout.addWidget(self.hits_view) def query_changed(self, query: str): print(query)