LINUX.ORG.RU

Как в QCombobox отличить посимвольный ввод в lineedit от клика по элементу ?

 , , ,


0

1
        QComboBox * comb1 = new QComboBox;
        comb1->addItems(list);

        comb1->setEditable(true);

        QLineEdit * line = new QLineEdit;

        comb1->setLineEdit(line);


        QCompleter * completer1 = new QCompleter(list,this);
        completer1->setCaseSensitivity(Qt::CaseInsensitive);
        completer1->setCompletionMode(QCompleter::PopupCompletion);
        comb1->setCompleter(completer1);

        connect(line,&QLineEdit::editingFinished,this,&MainWindow::editline);
        connect(line,&QLineEdit::textChanged,this,&MainWindow::textChangeline);

Пользователь в lineedit, вводит символы, QCompleter использую для фильтра вывода, потом пользователь кликает по оставшимся вариантам и событие editingFinished не срабатывает, пока курсор не будет убран из LineEdit. Подскажите как по клику на элемент QComboBox среагировать. Нужно после окончательного выбора произвести обработку.



Последнее исправление: user2132 (всего исправлений: 1)

Зачем ты лезешь в прогаммирование, ламер, когда даже знаки препинания расставляешь наугад? Марш улицы мести, неумный.

anonymous
()

QCompleter

Не знал что он вообще существует…

Снова по теме подсказать не могу, но призываю не стесняться делать свои derived-классы которые будут обладать расширенным поведением, которого нет в стандартных компонентах. Стандартные компоненты и дефолтное поведение не могли и не могут покрывать 100% потребностей разработчика

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от pathfinder

Срабатывает, но он также срабатывает при символьном вводе в lineedit, я не могу, используя этот сигнал различить, вводят еще в lineedit или уже кликнули, чтобы обработать результат выбранный.

user2132
() автор топика

У Qt очень неплохая справочная система, может следует заглядывать в неё? Думаю, QComboBox::textActivated(const QString &text) тебе подойдёт.

Elyas ★★★★★
()
Ответ на: комментарий от user2132

я не могу, используя этот сигнал различить

Может, если нет фокуса у lineedit, а сигнал сработал, то считаем, что мы не находимся «в процессе ввода».

pathfinder ★★★★
()
Ответ на: комментарий от pathfinder

Вводят в lineedit, он в фокусе в это время.

user2132
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.