Bonjour,
Voici ma nouvelle contribution ,comme écrit dans le titre, déplacement d' un rectangle à l'aide d'un
objet déclaré en QPushButton, dans une fenêtre de dimension 400 x 200 pixels .
Ce programme n'est pas écrit avec les class QGraphicScene et QGraphicItem .
Nom du fichier : objetmouv.cpp
Nom du fichier : objetmouv.h
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 #include "objetmouv.h" #include <QApplication> int main(int argc,char ** argv) { QApplication app(argc,argv) ; QPushButton * btndroite = new QPushButton("Avance") ; btndroite->setAutoRepeat(true) ; btndroite->setAutoRepeatInterval(33) ; QPushButton * btnrz = new QPushButton("Debut") ; QGridLayout * tablo = new QGridLayout ; Elements obj1 ; obj1.init() ; QLabel * mlabel = new QLabel ; mlabel->setPixmap(obj1.imagepix()) ; tablo->addWidget(mlabel,0,0,1,2) ; tablo->addWidget(btnrz,1,1) ; tablo->addWidget(btndroite,1,0) ; QWidget * mwidget = new QWidget ; mwidget->setLayout(tablo) ; QObject::connect(btndroite,SIGNAL(clicked()),&obj1,SLOT(avancedrt()) ) ; QObject::connect(btnrz,SIGNAL(clicked()),&obj1,SLOT(reviendebu()) ) ; QObject::connect(&obj1,SIGNAL(refresh()),&obj1,SLOT(fenetre()) ) ; mwidget->show() ; obj1.config(mwidget,mlabel) ; return app.exec() ; }
Au revoir.
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 #ifndef _OBJETMOUV_H_ #define _OBJETMOUV_H_ #include <QPainter> #include <QLabel> #include <QWidget> #include <QGridLayout> #include <QPushButton> #include <QObject> class Elements : public QObject { Q_OBJECT public : void init() { c_itr1 = 0 ; QPixmap dimensio(400,200) ; dimensio.fill() ; c_image = dimensio ; c_widget = new QWidget ; c_label = new QLabel ; // c_layout = new QGridLayout ; } QPixmap imagepix() { return c_image ; } void config(QWidget * mwidget,QLabel * mlabel) { c_widget = mwidget ; c_label = mlabel ; } public slots : void avancedrt() { c_itr1+= 4 ; if (c_itr1 >= 390) {c_itr1 = 389 ; } emit refresh() ; } void reviendebu() { c_itr1 = 0 ; emit refresh() ; } void fenetre() { c_image.fill() ; c_label->clear() ; QPainter stylet(&c_image) ; stylet.drawRect((c_itr1 + 10),50,50,100) ; stylet.end() ; c_label->setPixmap(c_image) ; c_label->update() ; // c_layout->addWidget(c_label,0,0,1,2) ; // c_widget->setLayout(c_layout) ; c_widget->update() ; } signals : void refresh() ; private : // QGridLayout * c_layout ; QWidget * c_widget ; QLabel * c_label ; QPixmap c_image ; int c_itr1 ; }; #endif
Partager