Bonjour,
Nouvel utilisateur de Qt, j'essaie de faire un essai de zoom sur une image affichée à l'écran
a- avec la molette de la souris
b- avec deux touches du clavier

Avec la souris, ça fonctionne bien comme prévu; mais pour le clavier, il ne se passe rien.

Où est donc mon erreur? Ci-après, le code utilisé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <QtCore>
#include <QtDebug>
 
class MyTest : public QLabel
{
public:
    MyTest():QLabel()
    {
    size=400;
    setFixedSize(500,500);
    setFocusPolicy(Qt::StrongFocus);
    setWindowTitle("Test Zoom HT-2012");
    this->grabKeyboard();
    }
//#define SOURIS
#ifdef SOURIS        //test avec la souris
    void wheelEvent(QWheelEvent *event)
    {
        if(event->delta()>0)
            size+=50;
        else
            size-=50;
 
        setPixmap(basePix.scaled(size, size));
 
        event->ignore();
    }
#else   //test avec le clavier
    void keypressEvent(QKeyEvent *event)
    {
        switch(event->key()) {
             case Qt::Key_Up:
                size+=50;
                break;
 
             case Qt::Key_Down:
                size-=50;
                break;
 
             default:
                QLabel::keyPressEvent(event);
 
        }
        setPixmap(basePix.scaled(size, size));
    }
 
#endif
    void setPix(QString newPix)
    {
        basePix.load(newPix);
        setPixmap(basePix.scaled(size, size,Qt::KeepAspectRatio));
    }
private:
 
    QPixmap basePix;
    int size;
};
 
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    MyTest test;
    test.setEnabled(true);
    test.show();
 
    test.setPix(QFileDialog::getOpenFileName(&test, ("Open Image File"),QCoreApplication::applicationDirPath(), ("Images (*.png *.xpm *.jpg)")));
 
    return app.exec();
}
Merci de votre aide.