Affichage d'objets dans une scène
Bonjour à tous,
J'ai fait le code de test que voici qui fonctionne comme je le souhaite
Code:
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
|
#include <QApplication>
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow *window = new QMainWindow();
// on met en place la gestion des fenetres multiples
QMdiArea *mdiArea = new QMdiArea;
mdiArea->setViewMode(QMdiArea::SubWindowView);
window->setCentralWidget(mdiArea);
// On met en place la sous fenetre
QMdiSubWindow *subWindow = new QMdiSubWindow();
subWindow->setWindowState(Qt::WindowMaximized);
mdiArea->addSubWindow(subWindow, Qt::SubWindow);
// On met en place un objet quelconque histoire d'afficher quelque chose
QPushButton *bouton = new QPushButton("Mon bouton entre en scene !");
QGraphicsScene scene;
QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
proxy->setWidget(bouton);
scene.setSceneRect(-150, -150, 300, 300);
// On met en place la scene à afficher dans la vue
scene.addItem(proxy);
// On teste différent traitement
// proxy->setPos(200, 150); // On bouge
// proxy->setRotation(45); // On rotationne ;)
// proxy->setScale(2); // On zoome
QGraphicsView view(&scene);
subWindow->setWidget(&view);
window->show();
return app.exec();
} |
Puis j'ai reporté ce code dans un projet un peut plus abouti.
Et là cela ne fonctionne plus.
Ca m'affiche bien ma QMdiSubWindow mais vide.
Je galère depuis plusieurs jours la dessus.
Est ce que quelqu'un peut me dire ce que je fait mal ?
le .h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#ifndef TESTGRAPHICS_H
#define TESTGRAPHICS_H
#include <QMainWindow>
#include "ui_TestGraphics.h"
class TestGraphics : public QMainWindow
{
Q_OBJECT
public:
TestGraphics(QWidget *parent = Q_NULLPTR);
~TestGraphics();
private:
Ui::TestGraphicsClass *ui;
};
#endif // !TESTGRAPHICS_H |
Le .cpp
Code:
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
|
#include "TestGraphics.h"
#include <QtWidgets>
TestGraphics::TestGraphics(QWidget *parent) : QMainWindow(parent), ui(new Ui::TestGraphicsClass)
{
ui->setupUi(this);
// on met en place la gestion des fenetres multiples
QMdiArea *mdiArea = new QMdiArea;
mdiArea->setViewMode(QMdiArea::SubWindowView);
setCentralWidget(mdiArea);
// On met en place la sous fenetre
QMdiSubWindow *subWindow = new QMdiSubWindow();
mdiArea->addSubWindow(subWindow, Qt::SubWindow);
subWindow->setWindowState(Qt::WindowMaximized);
// On met en place un objet quelconque histoire d'afficher quelque chose
QPushButton *bouton = new QPushButton("Mon bouton entre en scene !");
QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
proxy->setWidget(bouton);
// On met en place la scene à afficher dans la vue
QGraphicsScene scene;
scene.setSceneRect(-150, -150, 300, 300);
scene.addItem(proxy);
// On teste différent traitement
// proxy->setPos(200, 150);
// proxy->setRotation(45);
// proxy->setScale(2);
QGraphicsView view(&scene);
subWindow->setWidget(&view);
// view.show();
}
TestGraphics::~TestGraphics() {
delete ui;
} |
Merci d'avance pour votre aide