crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 28.3.2024, 14:09