Bonjour à tous,
J'essaie de m'initier à Qt, ici en essayant de faire une application 2D...
Voici le bout de code qui me pose problème :
et ce code est censé afficher une image, et la décaler de de son origine (qui est censée se trouver au centre de l'écran par défaut).
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 #include <QApplication> #include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QGraphicsScene scene; QGraphicsItem *item; QPixmap image; image.load("bonhomme.png", 0, Qt::AutoColor); item = scene.addPixmap(image); item->setPos(50,50); QGraphicsView vue(&scene); vue.setFixedSize(250, 250); vue.setWindowTitle("J'utilise QGraphicsItem !"); vue.show(); return app.exec(); }
Le seul inconvénient de ce code, et bien c'est qu'il ne décale pas l'image
Regardez :
Après divers tests, je me suis rendu comtpe que mon image était bien déplacée... mais que mon origine aussi !
La preuve avec ce code-ci :
Ce qui donne pour résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //mêmes trucs qu'avant //... image.load("bonhomme.png", 0, Qt::AutoColor); item = scene.addPixmap(image); image2.load("bonhomme.png", 0, Qt::AutoColor); item2 = scene.addPixmap(image2); item->setPos(0,0); item2->setPos(100,100); //Donc en gros, je ne bouge pas la première, mais je déplace la seconde //... //mêmes trucs qu'avant
Et donc, puisque la première image (en haut à gauche je pense) n'a pas été bougée (par le code), on peut en conclure que c'est l'origine qui a été bougée (par la réalité)... De toute manière l'écart entre les 2 images est bien de 100,100 mais l'origine c'est déplacée de (-100/2 , -100/2)...
Je précise qu'il n'y a pas que les images qui sont concernées, mais tous les objets "de base" aussi, rectangles, polygones, lignes, text...
Comment est-ce que je peux "fixer" l'origine ? Et premièrement, comment se fait-il qu'elle bouge ?????
Le pire, mais vraiment le truc le plus grave () c'est que en essayant ce code sur une autre machine, et bien... Ca marche nickel...
WTF ? Un problème de configuration de Qt ? Je précise que j'utilise QtCreator, sur une plateforme Windows... la machine sur laquelle ça marche aussi...
Je sèche :/
Merci d'avance à tous ceux qui voudront bien m'éclairer![]()
Partager