Помогите разобраться с 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)

...
→ Ссылка