#include <QtGui>
#include <QtWidgets> // Comment this if using Qt4
#include <QApplication>
{
public:
, mName("GraphicsPixmapItem") { }
enum { Type = UserType + 1 };
int type(void) const { return Type; }
QString name
(void) const { return mName;
}
void setName
(const QString & name
) { mName
= name;
}
protected:
{
painter->drawRect(option->rect);
}
private:
};
{
public:
explicit GraphicsScene
(QObject * parent
= 0) , mGraphicsTextItem(addText("No Selection")) { }
protected:
{
GraphicsPixmapItem * item = qgraphicsitem_cast<GraphicsPixmapItem *>(itemAt(event->scenePos(), QTransform()));
if(item)
mGraphicsTextItem->setPlainText(item->name());
else
mGraphicsTextItem->setPlainText("Click on GraphicsPixmapItem");
}
private:
};
int main(int argc, char *argv[])
{
graphicsView.showMaximized();
GraphicsScene graphicsScene;
graphicsView.setScene(&graphicsScene);
GraphicsPixmapItem
* pix1
= new GraphicsPixmapItem
(QPixmap("logo1.png"));
GraphicsPixmapItem
* pix2
= new GraphicsPixmapItem
(QPixmap("logo2.png"));
pix1->setPos(50,50);
pix2->setPos(200,50);
pix1->setName("Pixmap - 1");
pix2->setName("Pixmap - 2");
graphicsScene.addItem(pix1);
graphicsScene.addItem(pix2);
return app.exec();
}
#include <QtGui>
#include <QtWidgets> // Comment this if using Qt4
#include <QApplication>
class GraphicsPixmapItem : public QGraphicsPixmapItem
{
public:
explicit GraphicsPixmapItem(const QPixmap & pixmap, QGraphicsItem * parent = 0)
: QGraphicsPixmapItem(pixmap, parent)
, mName("GraphicsPixmapItem") { }
enum { Type = UserType + 1 };
int type(void) const { return Type; }
QString name(void) const { return mName; }
void setName(const QString & name) { mName = name; }
protected:
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->drawRect(option->rect);
return QGraphicsPixmapItem::paint(painter, option, widget);
}
private:
QString mName;
};
class GraphicsScene : public QGraphicsScene
{
public:
explicit GraphicsScene(QObject * parent = 0)
: QGraphicsScene(parent)
, mGraphicsTextItem(addText("No Selection")) { }
protected:
void mousePressEvent(QGraphicsSceneMouseEvent * event)
{
GraphicsPixmapItem * item = qgraphicsitem_cast<GraphicsPixmapItem *>(itemAt(event->scenePos(), QTransform()));
if(item)
mGraphicsTextItem->setPlainText(item->name());
else
mGraphicsTextItem->setPlainText("Click on GraphicsPixmapItem");
}
private:
QGraphicsTextItem * mGraphicsTextItem;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsView graphicsView;
graphicsView.showMaximized();
GraphicsScene graphicsScene;
graphicsView.setScene(&graphicsScene);
GraphicsPixmapItem * pix1 = new GraphicsPixmapItem(QPixmap("logo1.png"));
GraphicsPixmapItem * pix2 = new GraphicsPixmapItem(QPixmap("logo2.png"));
pix1->setPos(50,50);
pix2->setPos(200,50);
pix1->setName("Pixmap - 1");
pix2->setName("Pixmap - 2");
graphicsScene.addItem(pix1);
graphicsScene.addItem(pix2);
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks