Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: trot от Апрель 24, 2012, 14:43



Название: Непонятки с фокусом
Отправлено: trot от Апрель 24, 2012, 14:43
Здравствуйте.

Создаю своего делегата, наподобии элемента ввода текста в поисковиках. Т.е. когда идет набор текста в поле  ввода, то под этим полем выпадает список-подсказка.
Элемент создается на примере QComboBox. Выпадающий список создан на фрейме с типом окна Qt::Popup (все как у combobox).

Проблема заключается в том, что когда вводится первый символ в LineEdit, вываливается список и все, на этом ввод блокируется. Т.е. курсор стоит в LineEdit, но он не мигает. На нажатие клавиш нет никакой реакции. Проверил где стоит фокус. Фокус установлен на LineEdit, но текст почему-то не заводится. И только когда кликаешь в LineEdit курсор начинает мигать и можно заводить текст, но при этом скрывается окно со списком-подсказки. Помогите разобраться. Спасибо.


Название: Re: Непонятки с фокусом
Отправлено: GreatSnake от Апрель 24, 2012, 14:47
Цитата: assistant
Qt::Popup   0x00000008 | Window   Indicates that the widget is a pop-up top-level window, i.e. that it is modal, but has a window system frame appropriate for pop-up menus.


Название: Re: Непонятки с фокусом
Отправлено: trot от Апрель 24, 2012, 15:00
Я так понимаю, что надо отказываатся от Popup и использовать другой тип окна.


Название: Re: Непонятки с фокусом
Отправлено: UNION labs от Апрель 24, 2012, 15:34
Прежде чем дальше изобретать можно посмотреть в сторону такого виджета как QCompleter


Название: Re: Непонятки с фокусом
Отправлено: trot от Апрель 24, 2012, 15:43
Да я обратил внимание на этот класс.
Во-первых это не виджет.
Во-вторых я не знаю как добиться того, что бы при вводе текста в lineedit раскрывался спискок, где есть несколько похожих вариантов.
QCompleter предлагает один вариант путем дописывания набранного текста. А я хочу повторить элемент ввода текста, например как в Yandex.
Если это можно сделать с помощью QCompleter, то подскажите куда рыть.


Название: Re: Непонятки с фокусом
Отправлено: UNION labs от Апрель 24, 2012, 15:59
Да, ошибся, действительно не виджет, но он умеет делать, то что вам надо, ройте вот сюда
Цитировать
void   setCompletionMode ( CompletionMode mode )