将QGraphicsView视图-优快云博客中的QGraphicsRectItem换成此类MyItem 。
//myitem.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QGraphicsItem>
class MyItem : public QGraphicsItem
{
public:
MyItem();
~MyItem();
QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};
#endif // MAINWINDOW_H
//myitem.cpp
#include "myitem.h"
#include <QPainter>
MyItem::MyItem()
{
}
MyItem::~MyItem()
{
}
//用来返回要绘制图形项的矩形区域
//使用图形项坐标
QRectF MyItem::boundingRect() const
{
qreal pen_width = 1;
return QRectF(0 - pen_width / 2, 0 - pen_width / 2, 20 + pen_width, 20 + pen_width);
}
//用来执行实际的绘图操作
void MyItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->setBrush(Qt::red);
painter->drawRect(0, 0, 350, 20);
}