Создание нового окна, которое остается сверху даже в полноэкранном режиме (Qt в Linux) - PullRequest
1 голос
/ 13 мая 2010

Я использую Qt 4.6.3 и ubuntu linux на встроенной цели. Я звоню

dlg->setWindowState(Qt::WindowFullScreen);

на моих окнах в моем приложении (поэтому я не теряю никакой недвижимости с сенсорного экрана на панель задач и панель состояния в верхней и нижней частях экрана. Все это работает нормально и как и ожидалось. когда я хочу открыть экранную клавиатуру, чтобы пользователь мог ввести некоторые данные. Я использую

m_keyProc= new QProcess();
m_keyProc->start("onboard -s 640x120");

Появляется клавиатура, но она находится за полноэкранным окном. Настройки клавиатуры onbaord установлены так, что она всегда сверху, но это, кажется, фактически означает «кроме полноэкранных окон». Я думаю, что это имеет смысл и, вероятно, соответствует большинству вариантов использования, но мне нужно, чтобы он был действительно на вершине.

Могу ли я А) Не быть в полноэкранном режиме (чтобы клавиатура работала) и программно скрывать панели задач? или B) заставить клавиатуру быть на вершине, несмотря на мой статус полного экрана?

Примечание: на окнах мы называем

m_keyProc->start("C:\\Windows\\system32\\osk.exe");

и клавиатура osk находится сверху, несмотря на состояние полного экрана. Итак, я предполагаю, что это разница в менеджерах окон в разных операционных системах. Так мне нужно установить какой-нибудь флаг в окне с помощью менеджера окон linux?

1 Ответ

1 голос
/ 13 мая 2010

У Qt, похоже, нет способа вывести другой процесс, не относящийся к Qt. Вам может потребоваться получить собственный идентификатор процесса платформы от QProcess, вызвав QProcess::pid() и вызвав соответствующий API ОС для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...