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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QListWidget::keyboardSearch(), 4.4.x  (Прочитано 5156 раз)
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« : Декабрь 05, 2008, 17:54 »

Есть такая хорошая функция - QListWidget::keyboardSearch(), которая позволяет перейти на введенную строку (сделать ее текущей). Очень удобно, но есть одна проблема - как то странно это работает... Например, если есть последовательность строк:

disk
disk drive
diskette
disks

то при вызове, скажем, keyboardSearch("disk"), функция работает нормально ("disk" выбирается в списке).
Если потом вызвать keyboardSearch("diskette"), тоже все ок - выберется "diskette",
НО: если опять вызвать keyboardSearch("disk"), выбранной останется строчка "diskette"...

баг? репортить?
Записан

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 не волк, в лес не уйдёт
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Декабрь 05, 2008, 18:11 »

имхо, поиск происходит с текущей позиции и ищется подстрока в строке.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #2 : Декабрь 05, 2008, 18:40 »

Да, но это недокументировано и, по-моему, совершенно неправильно для настройки по умолчанию, как минимум это надо было делать опционально...
Записан

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 не волк, в лес не уйдёт
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Декабрь 05, 2008, 19:03 »

Как вариант, можно написать письмо тролям и попросить разъяснения или пусть немого расширят документацию по этому методу
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #4 : Декабрь 06, 2008, 02:33 »

Решил проблему следующим кодом вместо  keyboardSearch:

Код
C++ (Qt)
void MainForm::findItem(QListWidget *iv, const QString &str)
{
QList<QListWidgetItem *> list = iv->findItems(str, Qt::MatchStartsWith);
if (list.count()) {
iv->setCurrentItem(list.first());
iv->scrollToItem(list.first(), QAbstractItemView::PositionAtCenter);
}
}
 

Но троллям таки напишу.
Записан

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 не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #5 : Декабрь 08, 2008, 10:40 »

Написал репорт, будем ждать...
Записан

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 не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #6 : Декабрь 09, 2008, 18:33 »

Ответили: if you want the search to always start at the first item, you would need to set the current item to the first item before you call keyboardSearch.

ИМХО лаг доки. Попросил дополнить.


Записан

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 не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #7 : Декабрь 09, 2008, 18:54 »

дополнят Улыбающийся
Записан

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.221 секунд. Запросов: 23.