crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 16.4.2024, 21:06