======= Vytvoření grafické scény ======
Do hlavniho okna naseho programu umistime GraphicsView
{{qt:qtcreator01.png?800}}
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);
}
}
{{qt:rectangle.png}}
Jednotlive objekty muzeme presouvat pomoci mysi.
Jeste pouzite direktivy "include".
#include
#include
#include
Pokud se chcete podivat na obdobny priklad: \\
Qt5 Tutorial http://www.bogotobogo.com/Qt/Qt5_QGraphicsView_QGraphicsScene.php