Russian Qt Forum

Qt => Общие вопросы => Тема начата: diduz от Январь 20, 2012, 11:33



Название: Глобальный перехват событий клавиатуры и мыши
Отправлено: diduz от Январь 20, 2012, 11:33
Второи день ищу кросплатформенное решение этои проблемы. Поиск по форуму выдал http://www.prog.org.ru/topic_8646_0.html (http://www.prog.org.ru/topic_8646_0.html)
и
http://www.prog.org.ru/topic_9348_0.html (http://www.prog.org.ru/topic_9348_0.html)

Но в оба топика советуют ознакомиться с темой "Как перехватить глобальное нажатие клавиш?" ссылка на которую битая.Подскажите как можно решить данную проблему?


Название: Re: Глобальный перехват событий клавиатуры и мыши
Отправлено: GraninDm от Январь 25, 2012, 09:44
Может вот это поможет
http://www.prog.org.ru/topic_6550_0.html (http://www.prog.org.ru/topic_6550_0.html)

И попутно у меня вопрос.

Сделал как написано в приведенном топике.
Все работает в пределах приложения как нужно.
Но хочется сделать так, чтобы окна сами обрабатывали некоторые комбинации
Код:
bool AppShortCut::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::KeyPress) {
        QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
        if (keyEvent->key() == Qt::Key_F1) {
            return QApplication::activeWindow().eventFilter(obj, event);
        } else
            return false;
    }
    return false;
}

return QApplication::activeWindow().eventFilter(obj, event);
Вот тут затык.
request for member 'eventFilter' in 'QApplication::activeWindow()', which is of non-class type 'QWidget*'

Дополню...
Заработало...
Просто нужно было подключить #include <QWidget>