请帮我写一个QGraphicsRectItem的子类 ,重载paint事件
时间: 2024-10-16 19:08:59 浏览: 30
在Qt图形界面框架中,`QGraphicsRectItem`是一个基础的矩形元素,你可以基于它创建自定义的子类并重写`paintEvent`方法来实现自定义绘制。下面是一个简单的例子,展示如何创建一个名为`CustomRectangle`的子类,并重写`paintEvent`:
```cpp
#include <QGraphicsRectItem>
#include <QPainter>
#include <QPen>
#include <QBrush>
class CustomRectangle : public QGraphicsRectItem
{
public:
CustomRectangle(QRectF rect, QObject *parent = nullptr)
: QGraphicsRectItem(rect, parent) {}
protected:
void paintEvent(QPaintEvent *) override {
QPainter painter(this);
// 设置画笔颜色和宽度
QPen pen(Qt::blue, 2);
painter.setPen(pen);
// 设置填充色(这里仅为示例,可以替换为你想要的颜色)
QBrush brush(Qt::lightBlue);
painter.setBrush(brush);
// 绘制矩形
painter.drawRect(rect());
// 自定义绘制内容,例如添加纹理、图案等
// ...
}
};
// 使用示例
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
CustomRectangle customRect(QRectF(50, 50, 100, 75));
customRect.show();
return app.exec();
}
```
在这个例子中,我们创建了一个新的`CustomRectangle`,它的`paintEvent`会画出一个蓝色边框的浅蓝色填充的矩形。你可以根据需要修改`paintEvent`里的绘画逻辑。
阅读全文