Здравствуйте, гость ( Вход | Регистрация )
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. программа стартует предлагая ввести логин и пароль в диалоговое окно после удачного логина диалог скрывается и стартует загрузка странички в браузере, страничка содержит в себя поля ввода на них фокус автоматически не устанавливается(важно). после загрузки странички на страничке фокус есть и по табуляции он переходит от элемента странички к элементу, проблема в том что не отображается мигающая полосочка показывающая куда будет вводиться следующий символ. хотя сами символы благополучно попадают в поле ввода. ![]() |
|
Просмотр темы полностью (откроется в новом окне) | |
![]() |
Текстовая версия | Сейчас: 5.6.2023, 23:54 |