Multiple colors in a single rectitem
-
Just draw a red rectangle and a green rectangle next to it.
-
Hi ,
you can try the following code :
@
QRect myRect(0,0,100,100);
QPainter painter(this);
painter.fillRect(myRect.x(),myRect.y(),myRect.width()/2,myRect.height(),Qt::red);
painter.fillRect(myRect.width()/2,myRect.y(),myRect.width(),myRect.height(),Qt::green);@and if you are overriding the paint() event of a component/widget then u can write:
@painter->fillRect(QRect(option.rect.x(),option.rect.y(),option.rect.width()/2,option.rect.height()),Qt::red);
painter->fillRect(QRect(option.rect.width()/2,option.rect.y(),option.rect.width(),option.rect.height()),Qt::green);@ -
Hi,
If you need to subclass QGraphicsItem or QGraphicsRectItem as per your requirements, and then override the paint() function.
For Eg:
.h
@class MyRectItem : public QGraphicsItem
{public:
MyRectItem();QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);};@
.cpp
@QRectF MyRectItem::boundingRect() const
{
return QRectF(0,0,100,100);
}void MyRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->fillRect(boundingRect().x(),boundingRect().y(),boundingRect().width()/2,boundingRect().height(),Qt::red);
painter->fillRect(boundingRect().width()/2,boundingRect().y(),boundingRect().width(),boundingRect().height(),Qt::green);}@