LINUX.ORG.RU

как получить доступ к окну запускаемого процесса

 , ,


0

2

В приложении под Linux, написанном на Qt, нужно использовать виртуальную клавиатуру, т.к. планируется использовать это приложение на компьютерах с сенсорным экраном. Пользоваться компонентом QtVirtualKeyboard не хочу, т.к. это возможно лишь в Enterprise-лиценции, а пишется пока что прототип. Поэтому решил пользоваться готовой виртуальной клавиатурой типа xvkbd, matchbox-keyboard или florence.

Мне необходимо запустить процесс и запретить окну, созданному запущенным всяческие перемещения по экрану и изменения размеров по воздействию пользователя на сенсорный экран.

Прошу подсказать, как это лучше реализовать, и стоит ли вообще реализовывать. Может имеются более красивые решения этой задачи под linux, а не то, какое я вознамерился реализовать.

Запустил xprop для окна xvkbd, и есть там такая строка

_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE

Таким образом моя задача, наверное, может свестись к поиску окна по id запущенного мной процесса и к редактированию этого _NET_WM_ALLOWED_ACTIONS, убирая из него _NET_WM_ACTION_MOVE.

В _NET_WM_ALLOWED_ACTIONS почему-то нет чего-то, отвечающего за изменение размеров окна, хотя xvkbd имеет возможность менять размер окна.

dmitryshm
() автор топика

т.к. планируется использовать это приложение на компьютерах с сенсорным экраном.

А что на этих компьютерах разве нет своей сенсорной клавиатуры, эмулирующей аппаратную?

Как вариант, можно запилить свою виртуальную клавиатуру. Ничего сложного тут нет.

no-such-file ★★★★★
()
Ответ на: комментарий от bvn13

http://qt-apps.org/content/show.php/VirtualKeyboard?content=107388

Смотрел-смотрел. Отсутствуют нормальные настройки смены раскладки, надо рыскать по коду, чтобы смастерить русскую клавиатуру. Кажется функционала смены раскладок во время работы там вообще нет, в том и проблема.

dmitryshm
() автор топика

Мне все равно потребуется как-то получить доступ к окну запускаемого мной процесса, т.к. еще надо вызывать программу калибровки сенсорного экрана (эта программа специфичная, от производителя экрана).

Какие хорошие способы делать это из Qt есть?

dmitryshm
() автор топика
Ответ на: комментарий от bvn13

ответы низкого качества

https://gitorious.org/virtual-keyboard

виртуальная клавиатура, требующая подключения к интернету (т.к. используется компонент google из их jsapi), это совсем не подходит

http://www.ohloh.net/p/vkbw-qt

Проект, которому вообще не ассоциирован исходный код.

Все ответы в этой ветке пока что мимо кассы.

dmitryshm
() автор топика
Ответ на: комментарий от dmitryshm

Кажется ответ на мой вопрос содержится здесь:

http://stackoverflow.com/questions/151407/how-to-get-an-x11-window-from-a-pro...

Готовый код получения списка window id из pid. Далее по классу окна я отфильтрую окна, с которыми мне надо работать.

dmitryshm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.