Go back to Richel Bilderbeek's homepage.
Go back to Richel Bilderbeek's C++ page.
QGraphicsPixmapItem example example 7: respond to cursor moving over pixmap while holding the cursor still is a
QGraphicsPixmapItem
example. This example shows how to let the QGraphicsView responds to the cursor being moved over the
QGraphicsPixmapItem, where the pixmap keeps
responding even when the mouse cursor is held still.
QGraphicsPixmapItem example 6: let the view respond to cursor moving over pixmap is
the predecessor of QGraphicsPixmapItem example 7: respond to cursor moving over pixmap while holding the cursor still.
Technical facts
Application type(s)
Operating system(s) or programming environment(s)
IDE(s):
Project type:
C++ standard:
Compiler(s):
Libraries used:
Qt: version 5.4.1 (32 bit)
STL: GNU ISO C++ Library, version 4.9.2
Qt project file: ./CppQGraphicsPixmapItemExample7/CppQGraphicsPixmapItemExample7.pro
./CppQGraphicsPixmapItemExample7/qthighlighter.h
./CppQGraphicsPixmapItemExample7/qthighlighter.cpp
./CppQGraphicsPixmapItemExample7/qtitem.h
./CppQGraphicsPixmapItemExample7/qtitem.cpp
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <cassert>
#include <QCursor>
#include <QPainter>
#include "qtitem.h"
#pragma GCC diagnostic pop
QtItem::QtItem(QGraphicsItem *parent)
: QGraphicsPixmapItem(parent)
{
assert(this->pixmap().isNull()
&& "Assume no pixmap loaded yet");
//Load the pixmap from resources
this->setPixmap(QPixmap(":/images/PicR.png"));
assert(!this->pixmap().isNull()
&& "Assume pixmap is loaded successfully");
//Let the item have (0.0,0.0) as its center,
//so it will remain in place when rotating
this->setOffset(-pixmap().rect().center());
this->setFlags(
QGraphicsItem::ItemIsMovable
| QGraphicsItem::ItemIsSelectable);
}
void QtItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
//Let QGraphicsPixmapItem handle most of the painting
QGraphicsPixmapItem::paint(painter,option,widget);
//Draw a thick red line around the pixmap when it is selected
if (this->isSelected())
{
painter->setPen(QPen(QColor(255,0,0),3));
painter->drawRoundedRect(this->boundingRect().adjusted(3.0,3.0,-3.0,-3.0),6.0,6.0);
}
}
|
./CppQGraphicsPixmapItemExample7/qtmain.cpp
./CppQGraphicsPixmapItemExample7/qtwidget.h
./CppQGraphicsPixmapItemExample7/qtwidget.cpp
Go back to Richel Bilderbeek's C++ page.
Go back to Richel Bilderbeek's homepage.

This page has been created by the tool CodeToHtml