def __init__(self, lookup_names: List[str], on_entered: CallbackType) -> None: widget = QLineEdit("") completer = QCompleter(lookup_names) completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setFilterMode(Qt.MatchFlag.MatchContains) completer.setMaxVisibleItems(50) widget.setCompleter(completer) super().__init__("Название рецепта:", widget) self._on_recipe_name_entered = on_entered self._connect_slots()
def __init__(self, lookup_names: List, on_item_added: CallbackType) -> None: super().__init__() recipe_search_label = QLabel("Блюдо:") recipe_search_line_edit = QLineEdit("") completer = QCompleter(lookup_names) completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setFilterMode(Qt.MatchFlag.MatchContains) completer.setMaxVisibleItems(50) recipe_search_line_edit.setCompleter(completer) serves_amount_label = QLabel("Порций:") serves_amount_line_edit = QLineEdit(str(self.DEFAULT_SERVES_AMOUNT)) serves_amount_line_edit.setFixedWidth(30) serves_amount_line_edit.setValidator(QIntValidator()) serves_amount_line_edit.setMaxLength(2) add_push_button = QPushButton("+") # Widget layout layout = QHBoxLayout() layout.addWidget(recipe_search_label) layout.addWidget(recipe_search_line_edit) layout.addWidget(serves_amount_label) layout.addWidget(serves_amount_line_edit) layout.addWidget(add_push_button) layout.addStretch() self.setLayout(layout) # Init self data self._on_item_added = on_item_added self._recipe_search_line_edit = recipe_search_line_edit self._serves_amount_line_edit = serves_amount_line_edit self._add_push_button = add_push_button # Connect slots self._connect_slots()