Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Magseven от Октябрь 09, 2015, 08:58



Название: Как отследить неудачный поиск в QComboBox?
Отправлено: Magseven от Октябрь 09, 2015, 08:58
Добрый день

Может быть кто-нибудь сталкивался со следующей проблемой: QComboBox, editable = false, если пользователь находясь в этом поле вводит первые символы строк, которые присутствуют среди items, то происходит изменение CurrentIndex, в случае же если такой строки нет, то необходимо выполнить showPopup.

Заранее благодарен.


Название: Re: Как отследить неудачный поиск в QComboBox?
Отправлено: Racheengel от Октябрь 09, 2015, 09:13
Так а проблема то в чем ???


Название: Re: Как отследить неудачный поиск в QComboBox?
Отправлено: Magseven от Октябрь 09, 2015, 11:07
Проблема в том, чтобы в случае неудачного поиска открыть popup окно combobox. Неудачным считается поиск, при котором в combobox не нашлось items соответствующих введенным пользователем символам.


Название: Re: Как отследить неудачный поиск в QComboBox?
Отправлено: Racheengel от Октябрь 09, 2015, 15:46
Проблема в том, чтобы в случае неудачного поиска открыть popup окно combobox. Неудачным считается поиск, при котором в combobox не нашлось items соответствующих введенным пользователем символам.

Первое, что приходит в голову - переопределить keyPressEvent примерно как:

void MyCombo::keyPressEvent(..)
{
    int oldIndex = currentIndex();

    QComboBox::keyPressEvent(..);

    if (oldIndex == currentIndex())
        showPopup();
}

Но это будет работать только в том случае, если QComboBox::keyPressEvent(..); действительно поменяет индекс.