Могу ли я добавить глобальный хук ярлыка для приложения Qt в Ubuntu? - PullRequest
2 голосов
/ 26 февраля 2011

Мое приложение находится в трее, и я хочу, чтобы оно отображало диалоговое окно в ответ на глобальную горячую клавишу, как, например, в Google Desktop Search. Это не должно быть кросс-платформенным.

Ответы [ 2 ]

1 голос
/ 26 февраля 2011

Поиск SO для [qt] глобальная горячая клавиша дает, среди прочего, следующее:

Проблема с QxtGlobalShortcut [решено]

0 голосов
/ 26 февраля 2011

Ubuntu использует GConf для хранения настроек. Похоже на реестр Windows. Эти клавиши предназначены для хранения глобальных ярлыков. Чтобы настроить глобальные настройки клавиш, вы должны иметь дело с GTK Поэтому установите эти пакеты:

App Centre

И добавьте в ваш файл .pro следующие строки:

INCLUDEPATH += /usr/include/gconfmm-2.6\
                /usr/include/glibmm-2.4\
                /usr/lib/glibmm-2.4/include\
                /usr/include/glib-2.0\
                /usr/lib/glib-2.0/include\
                /usr/include/sigc++-2.0\
                /usr/lib/sigc++-2.0/include\
                /usr/include/gconf/2

LIBS += -L/usr/lib -lgconfmm-2.6

, затем вам нужно создать новый .cpp файл или класс, потому что вы не можете включить заголовки Qt и GTK в один файл.

#include <gconfmm.h>
using namespace Gnome;

и основная часть:

Conf::init();
    try
    {
        Glib::RefPtr<Conf::Client> pointer(Conf::Client::get_default_client());
        pointer->set("/apps/metacity/keybinding_commands/command_2",Glib::ustring("gedit"));
        pointer->set("/apps/metacity/global_keybindings/run_command_2",Glib::ustring("<Control><Alt>e"));
    }
    catch(Conf::Error error)
    {
        std::cerr << "Error code: " << error.code();
    }

Вы можете использовать все предопределенные ключи вместо command_2 (например, command_screenshot), и вы можете создавать свои собственные ключи, такие как

/apps/metacity/keybinding_commands/command_textedit
/apps/metacity/global_keybindings/run_command_textedit

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

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