Do hlavniho okna naseho programu umistime GraphicsView
V souboru demo.h pridame deklaraci promenne scene.
( Nejprve type QGraphicsScene, pozdeji naseho type Scene. )
QGraphicsScene * scene;
// pozdeji: Scene * scene;
V souboru demo.cc v konstruktoru vytvorime scenu a pripojime ji k graphics view.
Scena bude uchovavat zobrazovane objekty.
Na uvod alespon nakreslime cervenou čáru.
scene = new QGraphicsScene; // pozdeji: scene = new Scene; ui->graphicsView->setScene (scene); scene->setSceneRect (0, 0, 800, 600); scene->addLine (0, 0, 100, 200, QColor ("red"));
Do menu “File” k polozce “Run” pripojime funkci, ktera nakresli zluty obdelnik a dva modre krouzky.
( Pripojeni funce: pravou mysi v “action editoru” na polozku “actionRun” - v dolni casti predesleho obrazku.
Z kontextoveho menu vybereme “Go to slot”. )
void MainWindow::on_actionRun_triggered () { QGraphicsRectItem * block = new QGraphicsRectItem; block->setRect (0, 0, 200, 160); block->setPos (100, 100); block->setPen (QColor ("orange")); block->setBrush (QColor ("yellow")); block->setToolTip ("block"); block->setFlags (QGraphicsItem::ItemIsMovable | QGraphicsEllipseItem::ItemIsSelectable); scene->addItem (block); for (int i = 1; i <= 2; i++) { QGraphicsEllipseItem * item = new QGraphicsEllipseItem; item->setRect (0, 0, 40, 40); item->setPos (40 + (i-1) * 80, 40); item->setPen (QColor ("blue")); item->setBrush (QColor ("cornflowerblue")); item->setToolTip ("item" + QString::number (i)); item->setFlags (QGraphicsItem::ItemIsMovable | QGraphicsEllipseItem::ItemIsSelectable); item->setParentItem (block); } }
Jednotlive objekty muzeme presouvat pomoci mysi.
Jeste pouzite direktivy “include”.
#include <QGraphicsScene> #include <QGraphicsRectItem> #include <QGraphicsEllipseItem>
Pokud se chcete podivat na obdobny priklad:
Qt5 Tutorial http://www.bogotobogo.com/Qt/Qt5_QGraphicsView_QGraphicsScene.php