Vytvoření grafické scény

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

 
qt/graphics_create_scene.txt · Last modified: 2020/09/30 11:22 by 88.103.111.44
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki