2023-04-14 19:30:30 +08:00
|
|
|
#ifndef MYCUSTOMGRAPHICSITEM_H
|
|
|
|
|
#define MYCUSTOMGRAPHICSITEM_H
|
|
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
#include <QMouseEvent>
|
|
|
|
|
#include <QGraphicsScene>
|
|
|
|
|
#include <QGraphicsRectItem>
|
|
|
|
|
#include <QGraphicsSceneMouseEvent>
|
|
|
|
|
#include <QRect>
|
|
|
|
|
#include <QPainter>
|
|
|
|
|
#include <QPolygon>
|
|
|
|
|
#include <QList>
|
|
|
|
|
#include <QTransform>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CMyCustomGraphicsItem : public QObject , public QGraphicsItemGroup
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
explicit CMyCustomGraphicsItem(QObject *parent = nullptr);
|
|
|
|
|
|
|
|
|
|
// void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
|
|
|
|
// void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
|
|
|
|
|
// void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
|
|
|
|
|
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
|
|
|
|
|
void wheelEvent(QGraphicsSceneWheelEvent *event);
|
|
|
|
|
signals:
|
|
|
|
|
void doubleclick(QGraphicsSceneMouseEvent *event);
|
|
|
|
|
public slots:
|
|
|
|
|
};
|
2023-10-19 14:15:31 +08:00
|
|
|
class LineItem : public QGraphicsItem
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
LineItem();
|
|
|
|
|
|
|
|
|
|
//最大显示范围的设置默认为30
|
|
|
|
|
float maxX();
|
|
|
|
|
void setMaxX(float value);
|
|
|
|
|
public:
|
|
|
|
|
QRectF boundingRect() const;
|
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
|
|
|
|
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
|
|
|
|
private:
|
|
|
|
|
//显示范围
|
|
|
|
|
float m_maxX;
|
|
|
|
|
};
|
2023-04-14 19:30:30 +08:00
|
|
|
|
|
|
|
|
#endif // MYCUSTOMGRAPHICSITEM_H
|