Добрый вечер. Ребята подскажите мне пожалуйста, возможно ли мне из класса унаследованного от QObject получить событие нажатия клавиши? Что-то у меня не выходит..
Вот как я делаю:
C++ (Qt)
#ifndef KEYBOARD_H
#define KEYBOARD_H
#include <QObject>
#include <QtDeclarative>
#include <QKeyEvent>
namespace viewer {
class Keyboard: public QObject
{
Q_OBJECT
public:
Keyboard(QObject *parent = 0);
~Keyboard();
signals:
void Pressed ();
void Released ();
protected:
bool eventFilter (QObject *, QEvent *);
};
}
#endif // KEYBOARD_H
C++ (Qt)
#include "keyboard.h"
namespace viewer{
Keyboard::Keyboard(QObject *parent) :
QObject(parent)
{
this->installEventFilter (this);
}
Keyboard::~Keyboard (){
}
bool Keyboard::eventFilter (QObject *obj, QEvent *event){
if (event->type() == QEvent::KeyPress)
qDebug ()<< "это точно нужно";
return QObject::eventFilter (obj,event);
}
}
#include <QtGui/QApplication>
#include <QTextCodec>
#include "logging/logging.hpp"
#include "viewer/application.hpp"
#include "viewer/utils/keyboard.h"
using namespace viewer;
int main(int argc, char *argv[])
{
logging::init4file("viewer");
logging::init4console();
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForTr( QTextCodec::codecForName("UTF-8") );
Application app(argc, argv);
Keyboard *key = new Keyboard();
int ret = app.exec();
return ret;
}
подскажите мне пожалуйста, что я делаю не так?