Название: Виртуальная клавиатура и модальные окна Отправлено: NeTomat от Февраля 03, 2012, 13:21 Добрый день!
Делаю программу с поддержкой виртуальной клавиатуры под Windows переопределяя InputContext как в примере Virtual Input Panel. Столкнулся с такой проблемой, что если показывать окно с элементами ввода как модальное, то виртуальная клавиатура не получает эвенты нажатия мыши. например вот таким образом созданное окно не даст виртуальной клавиатуре работать: Код: QInputDialog dlg; Подскажите, как это можно обойти? Возможно ли как то сделать окно виртуальной клавиатуры активным поверх модального? Название: Re: Виртуальная клавиатура и модальные окна Отправлено: yoyo от Февраля 20, 2012, 15:35 Если в примере Virtual Input Panel для MyInputPanel установить атрибут Qt::WA_GroupLeader, то мы заявим, что хотим выдавать клавиатурную панель не только для главного окна, но также для модальных диалоговых окон.
Название: Re: Виртуальная клавиатура и модальные окна Отправлено: NeTomat от Февраля 24, 2012, 13:22 Помогло!
Спасибо большое! Название: Re: Виртуальная клавиатура и модальные окна Отправлено: sasha12345 от Июня 25, 2012, 18:15 Я столкнулся с той же проблеммой и Qt::WA_GroupLeader действительно помогает, но в помощи сказано, что этот атрибут устарел и нужно использовать QWidget::windowModality. Но что-то у меня не получается при помощи QWidget::windowModality добиться того же результата, что и с Qt::WA_GroupLeader.
Что делать? Название: Re: Виртуальная клавиатура и модальные окна Отправлено: Kurles от Июня 27, 2012, 00:09 Я столкнулся с той же проблеммой и Qt::WA_GroupLeader действительно помогает, но в помощи сказано, что этот атрибут устарел и нужно использовать QWidget::windowModality. Но что-то у меня не получается при помощи QWidget::windowModality добиться того же результата, что и с Qt::WA_GroupLeader. Тоже столкнулся. Надо этот атрибут присваивать не окну, которое будет выскакивать, а модальному окну, поверх которого оно будет выскактвать. Пример для наглядности:Что делать? Код
Название: Re: Виртуальная клавиатура и модальные окна Отправлено: sasha12345 от Июля 04, 2012, 18:35 Спасибо, так тоже работает. Только недостаток в том, что нужно каждому диалоговому окошку выставлять этот атрибут, вместо того, чтобы что-то установить только для виртуальной клавиатуры.
Название: Re: Виртуальная клавиатура и модальные окна Отправлено: twp от Июля 04, 2012, 21:29 по идее флаг можно не выставлять, а использовать QDialog::open(), тогда будет использоваться Qt::WindowModal флаг по умолчанию, ну а виртуальную клавиатуру вызывать через QDialog::exec(). Другой вариант - это унаследоваться от QDialog и в конструкторе задавать флаг Qt::WindowModal и тогда можно задействовать QDialog::exec() для своих диалогов.
|