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
| #include "dialog.h"
#include "ui_dialog.h"
#include "dialog2.h"
Dialog::Dialog(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
QBrush greenBrush(Qt::green);
QBrush blueBrush(Qt::blue);
QPen outlinePen(Qt::black);
outlinePen.setWidth(2);
rectangle = scene->addRect(100, 0, 80, 100, outlinePen, blueBrush);
// addEllipse(x,y,w,h,pen,brush)
ellipse = scene->addEllipse(0, -100, 300, 60, outlinePen, greenBrush);
text = scene->addText("coucou", QFont("Arial", 20) );
// movable text
text->setFlag(QGraphicsItem::ItemIsMovable);
// movable form
ellipse->setFlag(QGraphicsItem::ItemIsMovable);
rectangle->setFlag(QGraphicsItem::ItemIsMovable);
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::on_pushButton_clicked()
{
Dialog2 dialog2;
dialog2.setModal(true);
dialog2.exec();
}
Je génère une autre fenêtre en utilisant une autre classe Dialog2 et je voulais cliquer sur un bouton pour faire la même chose qu'au début sur scene = new QGraphicsScene(this); et mon code est le suivant: (Dialog2.cpp)
#include "dialog2.h"
#include "ui_dialog2.h"
#include <dialog_derived.h>
Dialog2::Dialog2(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog2)
{
ui->setupUi(this);
}
Dialog2::~Dialog2()
{
delete ui;
}
void Dialog2::on_pushButton_clicked()
{
// J'ai un problème ici
ui->graphicsView->setScene(this);
QBrush greenBrush(Qt::green);
QBrush blueBrush(Qt::blue);
QPen outlinePen(Qt::black);
outlinePen.setWidth(2);
rectangle = scene->addRect(100, 0, 80, 100, outlinePen, blueBrush);
// addEllipse(x,y,w,h,pen,brush)
ellipse = scene->addEllipse(0, -100, 300, 60, outlinePen, greenBrush);
text = scene->addText("coucou", QFont("Arial", 20) );
// movable text
text->setFlag(QGraphicsItem::ItemIsMovable);
// movable form
ellipse->setFlag(QGraphicsItem::ItemIsMovable);
rectangle->setFlag(QGraphicsItem::ItemIsMovable);
} |
Partager