Помогите разобраться с QCompleter в PyQt5?
Такой вопрос у меня есть список:
b = ['красный карандаш', 'ручка красная', 'фломастер красный', 'зеленый карандаш']
Я хочу чтобы когда я ввожу слово красный, он мне предлагал в выпадающем окне похожих слов все из этого списка в которых есть слово красный, сейчас вот этот код выдает только красный карандаш
import sys
from PyQt5.QtWidgets import QApplication, QLineEdit, QCompleter, QWidget
b = ['красный карандаш', 'ручка красная', 'фломастер красный']
app = QApplication(sys.argv)
win = QWidget()
win.setWindowTitle('ffff')
win.resize(300, 300)
text = QLineEdit(win)
com = QCompleter(b, win)
text.setCompleter(com)
win.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: Alexander Chernin
→ Ссылка
Надо установить режим фильтра в Qt.MatchContains (По умолчанию Qt.MatchStartsWith):
import PyQt5.QtCore import Qt
...
com = QCompleter(b, win)
# Устанавливаем режим поиска слов
com.setFilterMode(Qt.MatchContains)
# Если надо отключить чувствительность к регистру вводимых букв
com.setCaseSensitivity(Qt.CaseInsensitive)
text.setCompleter(com)
...