Multiple colors in a single rectitem
-
hi,some one please help me .Is it possible to put two are more colors in a single rectItem .for an example QRect(0,0,100,100) this is my actual rectitem i want to put half area red and remaing half green.please help with some sample code
-
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);@ -
Thanks to all. "SOUMITRA" your code is very useful for me.actually i am working on QGraphicsrectItems.how can i do the same "color " thing on the QGRaphicsRectItem instead of QRect
-
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);}@
-
Or just use 2 QGraphicsRectItems with a common parent.