Название: Popup keyboard Отправлено: Fobos от Апрель 20, 2011, 14:54 Народ, пожалуйста помогите. Есть экранная клавиатура сделанная в Qt отдельным виджетом. Она должна всплывать при получении фокуса или нажатии на какой-либо элемент в главном окне и закрываться при нажатии мышью вне клавиатуры (исключая редактируемый виджет). Открываться то она открывается, а вот закрываться правильно не хочет, т.к. главный виджет не получает MouseEvent при нажатии на ребенка(лейбл, кнопку и т.п.). Вопрос как получить событие при нажатии мышью на ребенка главного окна?
Название: Re: Popup keyboard Отправлено: GreatSnake от Апрель 20, 2011, 15:00 Цитировать Вопрос как получить событие при нажатии мышью на ребенка главного окна? Всё зависит от того как вывели окно клавы - с грабом или нет. И какой базовый класс используется.Да и вообще код показывай. Название: Re: Popup keyboard Отправлено: NicK от Апрель 20, 2011, 15:01 Код
будет закрываться при потере фокуса Название: Re: Popup keyboard Отправлено: GreatSnake от Апрель 20, 2011, 15:08 Цитата: NicK будет закрываться при потере фокуса Причём всегда и независимо отЦитата: Fobos Она должна всплывать при получении фокуса или нажатии на какой-либо элемент в главном окне и закрываться при нажатии мышью вне клавиатуры (исключая редактируемый виджет) Название: Re: Popup keyboard Отправлено: Fobos от Апрель 20, 2011, 15:20 Код: //куски кода keyboard отнаследована от QWidget; хотя и поставил флаг Qt::Popup - все равно не работает Название: Re: Popup keyboard Отправлено: GreatSnake от Апрель 20, 2011, 15:37 А почему не воспользовались QCompleter?
Название: Re: Popup keyboard Отправлено: Fobos от Апрель 20, 2011, 15:50 А почему не воспользовались QCompleter? Приложение идет на терминалы, без клавиатуры и мыши, с сенсорным экраном. И для редактирования полей типа SpinBox или LineEdit используется экранная клавиатура.Хочу сделать показ/закрытие клавиатуры аналогично QDateEdit с включеным calendarPopup, но в qt'шных файлах ответа не нашел. Название: Re: Popup keyboard Отправлено: Fobos от Апрель 20, 2011, 18:30 Разобрался... В общем если у окна стоит флаг Qt::Popup то оно первое принимает все события мыши, минуя родителя и другие окна.
|