Возможно ли реализовать сочетания клавиш в стиле emacs во всех программах Qt (возможно, в виде плагина qt)? - PullRequest
9 голосов
/ 13 декабря 2011

Программы Gtk могут иметь разные темы привязки клавиш, связывая разные ключи с сигналами gtk, но на самом деле программы qt не могут сделать это сейчас.

Поскольку Qt поддерживают плагины (как это делают большинство библиотек этого типа, и чтоЯ имею в виду плагин высокого уровня или расширение Qt), и по крайней мере некоторые из них (плагины высокого уровня) могут автоматически загружаться всеми программами qt в соответствии с sth, например ENV, возможно ли иметь глобальные (Emacs или другие стили) сочетания клавиш (по крайней мере, во всех областях ввода) используя плагин qt?Или, другими словами, кто-нибудь знает, какого рода (High Level) плагин это должен быть?

Я предполагаю, что это плагин inputcontext или доступный (bridge) плагин.Для плагина ввода контекста, мне интересно, может ли это работать с методом ввода, так как afaik может быть включен только один backend метода ввода за один раз.Что касается доступного плагина, я не выяснил, как заставить его загружаться автоматически.

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

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

Я думаю, что вы используете слово «плагин» в другом смысле, нежели Qt. У него есть различные специальные плагины - для кодеков изображений, драйверов SQL и т. Д. - но нет универсального механизма «сделать это для всех виджетов». Для этого вам нужно будет перехватить все точки создания виджетов верхнего уровня в вашем приложении и добавить код для установки фильтра для каждого случая.

0 голосов
/ 03 февраля 2012

Я как-то решаю проблему (наряду с этим ), используя xkb, то есть перенаправляем C-npfbae на соответствующие ключи, хотя я не сделал перенаправление Cd совместимым с терминалом EOF .

Я все еще думаю, что проблему (в Qt) можно решить с помощью плагинов qtaccessible, но я не знаю, как заставить это работать.

...