Russian Qt Forum
Апрель 19, 2024, 21:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как отследить неудачный поиск в QComboBox?  (Прочитано 3025 раз)
Magseven
Новичок

Offline Offline

Сообщений: 25


Просмотр профиля
« : Октябрь 09, 2015, 08:58 »

Добрый день

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

Заранее благодарен.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Октябрь 09, 2015, 09:13 »

Так а проблема то в чем Непонимающий
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Magseven
Новичок

Offline Offline

Сообщений: 25


Просмотр профиля
« Ответ #2 : Октябрь 09, 2015, 11:07 »

Проблема в том, чтобы в случае неудачного поиска открыть popup окно combobox. Неудачным считается поиск, при котором в combobox не нашлось items соответствующих введенным пользователем символам.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Октябрь 09, 2015, 15:46 »

Проблема в том, чтобы в случае неудачного поиска открыть popup окно combobox. Неудачным считается поиск, при котором в combobox не нашлось items соответствующих введенным пользователем символам.

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

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

    QComboBox::keyPressEvent(..);

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

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

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.