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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Поиск как в Яндексе  (Прочитано 8376 раз)
jatsuk
Гость
« Ответ #15 : Июня 08, 2011, 14:24 »

я сначала посмотрел пост с См. QLineEdit::setCompleter()., а последний не заметил.
Нашел ответ сам, так что можно сказать приучился  Смеющийся
Записан
jatsuk
Гость
« Ответ #16 : Июня 09, 2011, 08:44 »

Скачал и поставил новый кутэ, установил ограничение completer3->setMaxVisibleItems(5);

Первая таблица нормально работает, ограничивается максимум 5
А со второй таблицей неладное , то нормально с прокруткой , то без неё все элементы,  то вообще сначала все варианты, а потом белая колонка вниз до бесконечности

В чем проблема может быть Непонимающий
Записан
daimon
Гость
« Ответ #17 : Июня 09, 2011, 22:11 »

А вот такой вопрос как добавить всплывающую подсказку для всех содержимых строки в лайнедите по очереди типа A+B в лайнедите, а поочереди список вылезит сначала A потом B. Комплетер следит не за всей строкой а только за подстрокой с разделителями +-*/% ну и ещё что-то (в общем настраиваемый список как бы разделителя при просмотре возможных символов),
Записан
daimon
Гость
« Ответ #18 : Июня 10, 2011, 00:59 »

tools/customcompleter есть пример под textwidget
Код
C++ (Qt)
 
void TextEdit::setCompleter(QCompleter *completer)
{
   if (c)
       QObject::disconnect(c, 0, this, 0);
 
   c = completer;
 
   if (!c)
       return;
 
c = new QCompleter (QStringList()<<"A"<<"B"<<"C"<<"AB");
c->setWidget(this);
 
   c->setCompletionMode(QCompleter::PopupCompletion);
c->setCaseSensitivity(Qt::CaseSensitive);
   QObject::connect(c, SIGNAL(activated(QString)),
                    this, SLOT(insertCompletion(QString)));
}
 

вот вставка для своих данных в список
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #19 : Июня 10, 2011, 08:39 »

Код
C++ (Qt)
   c = completer;
   if (!c)
       return;
c = new QCompleter (QStringList()<<"A"<<"B"<<"C"<<"AB");
 
Ничего, что у вас тут память течёт?
Записан
daimon
Гость
« Ответ #20 : Июня 10, 2011, 12:45 »

Код
C++ (Qt)
   c = completer;
   if (!c)
       return;
c = new QCompleter (QStringList()<<"A"<<"B"<<"C"<<"AB");
 
Ничего, что у вас тут память течёт?


вообще-то это я просто так написал, не знаю как прилепить в класс QCompleter список возможнх элементов)))
Записан
jatsuk
Гость
« Ответ #21 : Июня 12, 2011, 05:41 »

Всех, с новым праздником Подмигивающий

До сих пор не могу сделать, чтобы нормально отображались названия в  QCompleter

Долго не мог понять, почему он отобрыжает кучу пустого места и не реагирует на ограничение  completer->setMaxVisibleItems(7);

Но сегодня сделал все QCompleter через QSqlQueryModel
И какого было мое удивление, когда именно это поле названий НЕ ОТОБРАЖАЕТСЯ В МОДЕЛЬ
Все поля, всех таблиц нормально отображаются.

model.setQuery("SELECT * FROM alfa ORDER BY n_sim");
 completer = new QCompleter(&model);

Даже остальные поля этой таблицы, где названия - всё норм. А они не хотят.
Помоги те кто-нибудь, я в тупике...
Записан
jatsuk
Гость
« Ответ #22 : Июня 16, 2011, 12:31 »

Понятия не имею почему не работало  Смеющийся

Вот так все нормально

model3.setQuery("SELECT n_bol FROM sim ORDER BY n_bol");
 completer3 = new QCompleter(&model3);
 completer3->setCompletionColumn(0);// столбец по которому ищем
 completer3->setMaxVisibleItems(7);
connect(completer3,SIGNAL(activated(QModelIndex)),this,SLOT(SelectAbonent(QModelIndex)));

Мой вопрос, решен  Подмигивающий
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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