1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| #ifndef CLAV_H
#define CLAV_H
#include <QtGui>
#include<iostream>
using namespace std;
class QWidget;
class QKeyEvent;
class Exemple: public QWidget
{
Q_OBJECT
public:
Exemple(QWidget* parent = 0);
public slots:
virtual void keyPressEvent(QKeyEvent * event);
void update();
signals:
void keyPress(QKeyEvent *);
void timeout();
}
class test:QKeyEvent
{
public:
test();
int a;
}
#endif
"#"
-------------------------------------------------------
le fichier .cpp
#include "clav.h"
QKeyEvent event0;
Exemple::Exemple(QWidget *parent):QWidget(parent)
{
QTimer *timer = new QTimer(this);
QObject::connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);
connect(parent, SIGNAL(keyPress(QKeyEvent*)), SLOT(keyPressEvent(QKeyEvent*)));
//e = new Exemple(this);
}
void Exemple::keyPressEvent(QKeyEvent * event)
{
//Exemple e;
//QQWidget::keyPressEvent ( event );
switch (event->key())
{
case Qt::Key_M:
event0.a=1;
break;
case Qt::Key_L:
event0.a=2;
break;
}
QWidget::keyPressEvent ( event );
emit keyPress(event);
}
void Exemple::update()
{
cout >> event0.a;
emit keyPressed(event);
}
test::test(){}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
Exemple exemple(&w);
w.show();
return app.exec();
} |
Partager