Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Troglodit от Июнь 25, 2008, 12:25



Название: QCombobox-помогите разобраться
Отправлено: Troglodit от Июнь 25, 2008, 12:25
Qt 4.4.0. Возможно хочется странного, но все же. При редактировании необходимо чтобы открывался выпадающий список и показывал только те значения которые подходят уже введенному набору символов введенному пользователем. Все чего смог добиться-это открывания списка но при этом редактировать уже не получается,а если меняю фокус и продолжаю редактировать , то окно со списком закрывается.


Название: Re: QCombobox-помогите разобраться
Отправлено: Dodge от Июнь 25, 2008, 12:54
см. QCompleter


Название: Re: QCombobox-помогите разобраться
Отправлено: Troglodit от Июнь 25, 2008, 13:12
Основная пока засада в том что при редактировании выпадающий список на экране никак не получается показать.. если он показывается то нельзя редактировать.


Название: Re: QCombobox-помогите разобраться
Отправлено: Sergeich от Июнь 25, 2008, 14:03
Посмотри пример в $QTDIR/examples/tools/compliter


Название: Re: QCombobox-помогите разобраться
Отправлено: Troglodit от Июнь 25, 2008, 14:26
Спасибо огромное! То что надо, буду разбираться.


Название: Re: QCombobox-помогите разобраться
Отправлено: Troglodit от Июнь 25, 2008, 16:00
А можно ли сделать с его помощью поиск по вхождению (как LIKE в SQL)?


Название: Re: QCombobox-помогите разобраться
Отправлено: cooler_3105 от Февраль 11, 2009, 16:52
А можно ли сделать с его помощью поиск по вхождению (как LIKE в SQL)?
Присоединяюсь к вопросу: как сделать, чтобы сравнение введенной строки в QComboBox с его содержимым происходило не с 1-го символа, а с каждого.


Название: Re: QCombobox-помогите разобраться
Отправлено: maranath от Июнь 27, 2011, 16:22
 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);