Time for action – reacting to an item's selection state

The assigned pointer to a QStyleOptionGraphicsItem item might become handy if you want to alter the appearance of the item related to its state. For example, say you want to fill the rectangle with red when it gets selected. To do so, you only have to type this:

void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {
  Q_UNUSED(widget)
  if (option->state & QStyle::State_Selected)
    painter->fillRect(boundingRect(), Qt::red);
  else
    painter->fillRect(boundingRect(), Qt::black);
}

What just happened?

The state variable is a bitmask holding the possible states of the item. You can check its value against the values of the QStyle::StateFlag parameter by using bitwise ...

Get Game Programming Using Qt now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.