crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Custom Completer
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
haiflive Дата 4.12.2010, 17:51
  Вобщем вот нарыл такой код
    QLineEdit *lineEdit = new QLineEdit;
    // проблемы с разрывом всязи
    QSqlTableModel* model = new QSqlTableModel();
    model->setTable("abonents");
    model->select();

    QCompleter *completer = new QCompleter(model);
    completer->setCaseSensitivity(Qt::CaseInsensitive);
    completer->setCompletionColumn(7);// столбец по которому ищем
    completer->setMaxVisibleItems(10);

    connect(completer,SIGNAL(activated(QModelIndex)),this,SLOT(SelectAbonent(QModelIndex)));

    lineEdit->setCompleter(completer);

Это слот
void NaligationPanel::SelectAbonent(const QModelIndex &index)
{
    qDebug() << "Ttest ready!" << index.column() << ":" << index.data().toString();
    // получить значение других стобцов нужно здесь
}


Вопрос, Как получить из базы данных значение из другого столбца?

В данном примере происходи поиск по по 7 столбцу(ФИО), а как получить значения других стобцов, что-то не пойму, есть конечно вариант получить значение строки и номер полученной записи, потом выполнить дополнительный SQL.. но можно же как-то проще все данные уже загружены требуется их как-то извлечь, може указатель там какой есть в model, или как-то через QModelIndex можно получить ссылку на модель?
И хочу учесть тот факт, что "ФИО пользователей" могут быть одинаковыми.
frg10 Дата 9.11.2009, 20:47
 
Цитата(kwisp @ 9.11.2009, 16:49) *
а вообще минус в этом отношениии. тролли в своей же программе не пользуюь свой же комплиттер.

А в чем минус? Если компонент не подходит для задачи, то для чего его использовать?

Вообще, из названия класса видно для чего он нужен: он дополняет. Т.е. вы печатаете начало, а он подбирает завершение. И со своей задачей он справляется отлично. А то что хочет от него топикстартер - это очень похоже, но не то.
kwisp Дата 9.11.2009, 16:49
 
Цитата(frg10 @ 9.11.2009, 16:05) *
У них самописное там все.

бери оно бесплатное:)
если есть вариант выдрать класс или группу классов выдирай смело.
а вообще минус в этом отношениии. тролли в своей же программе не пользуюь свой же комплиттер.
я почему то был уверен найти там(в доках по комплиттеру) QRegExp когда полез первый раз.. и удивился когда не нашел.

frg10 Дата 9.11.2009, 16:05
 
Цитата(ViGOur @ 6.11.2009, 16:12) *
Тогда глянь как в ассистенте реализован комплетер, у меня по крайней мере в ассистенте QtCreator'а (под ubuntu 9.10) комплетер работает так как тебе нужно.

А там не используется стандартный комплетер. У них самописное там все.

gmurik2
С помощью QCompleter то что вам нужно не получится сделать. Он всегда использует введенную строчку как префикс к слову.
Litkevich Yuriy Дата 9.11.2009, 8:48
 
Цитата(gmurik2 @ 9.11.2009, 11:20) *
как в ассистенте реализован комплетер


Qt Assistant - справочная программа
gmurik2 Дата 9.11.2009, 8:20
 
Цитата(ViGOur @ 6.11.2009, 18:12) *
Тогда глянь как в ассистенте реализован комплетер, у меня по крайней мере в ассистенте QtCreator'а (под ubuntu 9.10) комплетер работает так как тебе нужно.


Если имеется ввиду примеры examples\tools\completer и examples\tools\customcompleter, то они работают не так как мне нужно, они предлагают варианты, которые начинаются на введенные символы. Мне же надо чтобы когда я ввожу например символы "ми", мне предлагались варианты "мир", "помидор" и т.д.

в доке также описываются варианты, которые реализованы в examples\tools\completer и examples\tools\customcompleter
ViGOur Дата 6.11.2009, 16:12
  Тогда глянь как в ассистенте реализован комплетер, у меня по крайней мере в ассистенте QtCreator'а (под ubuntu 9.10) комплетер работает так как тебе нужно.
kwisp Дата 6.11.2009, 16:02
  мда..
просмотрел документацию.
пока не нашел решения.


gmurik2 Дата 6.11.2009, 15:01
 
Цитата
Custom Completer Example ;)


там не совсем то, что мне надо, мне надо чтобы выводились еще и те результаты где "га" встречается в середине слова
ViGOur Дата 6.11.2009, 14:36
  Custom Completer Example ;)
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 0:51