crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в setFocus() grabKeyboard() фокус, мигающий курсор
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kwisp Дата 5.2.2009, 18:42
  наткнулся на нудную неинтересную вещь.
получилось так что после того как делаешь show() главному окну получаешь последнее со всеми дочерними виджетами на экране. тут как я понял из документации срабаотывает некий менеджер установки фокуса, который ставит фокус ввода с клавиотуры подходящему виджету. при том что он работает не в обработчике showEvent() в других потрохах.

Цитата
if focus has never been in this window before and you know where focus should start out, call QWidget::setFocus() on the widget which should receive focus before you call QWidget::show() it. If you don't, Qt will pick a suitable widget.


setFocus() по ходу получается что устанавливает фокус на виджет при следующем его показе.!!! а не сразу

добился того чтобы в поле ввода странички браузера появилась каретка(текстовый курсор ввода)
тем что в обработчике сигнала браузера loadFinished(bool)
вызвал один за другим два метода
this->setFocus();
this->show();

достаточно сделать при первой загрузке браузера и каретка станет появляться.
вообще для себя понял что фокус одна из самых скользких тем в Qt. почему то всегда с ней проблемы и неясности.
kwisp Дата 30.1.2009, 14:43
  ViGOur, я проверял даже после загрузки браузера посылал ему с помощью sendEvent() QShowEvent и результат тотже. я считаю что эта штука присутствует в qt в связи с тем что возможно события клавиотуры принимает браузер а фокус ввода на каком либо другом виджете. проблему естественно я уже решил() желаемая мигающая полоска появляется(я управляю фокусом в браузере из программы с помощью яваскрипта на страничке который устанавливает фокус куда мне нужно). однако все же интересно куда она девается при первой загрузке ???....
ViGOur Дата 30.1.2009, 14:33
  Такое ощущение, что в данном случае проблемы с отрисовкой.
kwisp Дата 30.1.2009, 13:11
  народ если кто сталкивался.
программа - это виджет на весь экран на нем менеджер размещения один из элементов браузер QtWebKit.
программа стартует предлагая ввести логин и пароль в диалоговое окно после удачного логина диалог скрывается и стартует загрузка странички в браузере, страничка содержит в себя поля ввода на них фокус автоматически не устанавливается(важно). после загрузки странички на страничке фокус есть и по табуляции он переходит от элемента странички к элементу, проблема в том что не отображается мигающая полосочка показывающая куда будет вводиться следующий символ. хотя сами символы благополучно попадают в поле ввода.:( полосочка появляется если сменить фокус вручную. т.е. нажать к примеру альтаб а потом вернуться обратно и полосочка мигает.... странность однако.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 2:42