1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Как реализовать Автозаполнение в wxPython 4.0.4

Тема в разделе "python", создана пользователем searchengines, 5 июн 2019.


Поделиться в соц сетях

  1. searchengines

    searchengines Administrator

    Регистрация:
    5 янв 2019
    Сообщения:
    1.666
    Симпатии:
    2
    Баллы:
    38
    Подскажите пожалуйста, по примеру создал собственный класс, унаследованный от wx.TextCompleterSimple для реализации автозаполненя TextCtrl. Пытаюсь сделать так чтобы автозаполнение срабатывало, когда было найдено совпадение в строке списка, а срабатывает если совпадает начало строки списка. Заранее спасибо!

    список для автозаполнения books_list = ["Издательство \"Мир\"","Частная полиграфия \"Писатель\"","Полиграфическая контора\"Штамп\"", "Союз Писателей","Издательский дом \"Панорама\"","Издательский дом \"Полиграф\"", "Издательский дом \"Колибри\""]

    class TestAutocomplet(wx.TextCompleterSimple):
    def __init__(self, maxResults=5):
    wx.TextCompleterSimple.__init__(self)
    self._iMaxResults = maxResults

    def GetCompletions(self, prefix):
    if len(prefix) < 3:
    return []
    res = []
    mydict={}
    prfx = prefix.lower()
    for item in books_list:
    i=books_list.index(item)
    mydict=item
    for key, value in mydict.items():
    val=value.lower()
    item=val.find(prfx)
    if item != -1:
    res.append(value)
    if len(res) == self._iMaxResults:
    return res

    return res


    И ещё не могу понять, из "коробки" TextCtrl поддерживает смену фокуса Tab -ом а при установки автозаполнения это свойство перестаёт работать.
     

Поделиться этой страницей