Название: Непонятки с фокусом Отправлено: 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 ) |