Russian Qt Forum
Ноябрь 05, 2024, 22:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Непонятки с фокусом  (Прочитано 3002 раз)
trot
Гость
« : Апрель 24, 2012, 14:43 »

Здравствуйте.

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

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

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Апрель 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.
Записан

Qt 5.11/4.8.7 (X11/Win)
trot
Гость
« Ответ #2 : Апрель 24, 2012, 15:00 »

Я так понимаю, что надо отказываатся от Popup и использовать другой тип окна.
Записан
UNION labs
Гость
« Ответ #3 : Апрель 24, 2012, 15:34 »

Прежде чем дальше изобретать можно посмотреть в сторону такого виджета как QCompleter
Записан
trot
Гость
« Ответ #4 : Апрель 24, 2012, 15:43 »

Да я обратил внимание на этот класс.
Во-первых это не виджет.
Во-вторых я не знаю как добиться того, что бы при вводе текста в lineedit раскрывался спискок, где есть несколько похожих вариантов.
QCompleter предлагает один вариант путем дописывания набранного текста. А я хочу повторить элемент ввода текста, например как в Yandex.
Если это можно сделать с помощью QCompleter, то подскажите куда рыть.
Записан
UNION labs
Гость
« Ответ #5 : Апрель 24, 2012, 15:59 »

Да, ошибся, действительно не виджет, но он умеет делать, то что вам надо, ройте вот сюда
Цитировать
void   setCompletionMode ( CompletionMode mode )
« Последнее редактирование: Апрель 24, 2012, 16:41 от dimkanovikov » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.