PDA

View Full Version : QGraphicsView + MainWindow



lioncub
25th February 2011, 14:10
How PixmapItem in MainWindow:
main.cpp:

#include <QApplication>
#include "diagramwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
DiagramWindow view;
view.show();
return app.exec();
}graphwidget.h:

#include <QApplication>
#include "diagramwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
DiagramWindow view;
view.show();
return app.exec();
}graphwidget.cpp:

#include "graphwidget.h"
#include "node.h"
#include <QtGui>
GraphWidget::GraphWidget(QWidget *parent)
: QGraphicsView(parent)
{
QGraphicsScene *scene = new QGraphicsScene(this);
scene->setSceneRect(-200, -200, 400, 400);
setScene(scene);
setRenderHint(QPainter::Antialiasing);
setWindowTitle(tr("Elastic Nodes"));
Node *node4 = new Node(this);
centerNode = new Node(this);
Node *node6 = new Node(this);
scene->addItem(node4);
scene->addItem(centerNode);
scene->addItem(node6);
node4->setPos(-50, 0);
centerNode->setPos(0, 0);
node6->setPos(50, 0);
}node.h:

#ifndef NODE_H
#define NODE_H
#include <QGraphicsPixmapItem>
class GraphWidget;
class Node : public QGraphicsPixmapItem
{
public:
Node(GraphWidget *graphWidget);
enum { Type = UserType + 1 };
int type() const { return Type; }
QRectF boundingRect() const;
QPainterPath shape() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
private:
GraphWidget *graph;
};node.cpp:

#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QPainter>
#include <QStyleOption>
#include "node.h"
#include "graphwidget.h"
Node::Node(GraphWidget *graphWidget)
: graph(graphWidget)
{
setFlag(ItemIsMovable);
setFlag(ItemSendsGeometryChanges);
}
QRectF Node::boundingRect() const
{
return QRectF(-24,-24,48,48);
}
QPainterPath Node::shape() const
{
QPainterPath path;
path.addRect(-24, -24, 48, 48);
return path;
}
void Node::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
{
QPixmap pixmap = QPixmap("Hub.png");
painter->drawPixmap(-24,-24,pixmap);
}
What can be?

franz
25th February 2011, 14:37
What do you want? What do you see? What have you tried?

Ask smart questions (http://www.catb.org/~esr/faqs/smart-questions.html).

lioncub
25th February 2011, 14:57
I want show PixmapItem this Node this Hub.png on window MainWindow.

lioncub
26th February 2011, 10:31
Sorry. All works.