加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ControlItem.h 1.53 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef CONTROLITEM_H
#define CONTROLITEM_H
/************************************************************************
* @auther :
* @date : 2021-4
* @description : 控制点
* ROI模块中美的控制点
* 中心点ju'xin矩形 点击后可移动
* 控制点圆形、点击后可以拖动
************************************************************************/
#include <QObject>
#include <QAbstractGraphicsShapeItem>
#include <QPointF>
#include <QPen>
#include <QPainter>
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsScene>
#include <QCursor>
#include <QKeyEvent>
#include <QList>
#include <QDebug>
class ControlItem : public QObject, public QAbstractGraphicsShapeItem
{
Q_OBJECT
public:
explicit ControlItem(QGraphicsItemGroup* parent, QPointF p, int type);
QPointF GetPoint();
QPointF GetBefPoint(){return BefPoint;}
void SetPoint(QPointF p);
qreal dX(){return dx;};
qreal dY(){return dy;};
int index=0;
protected:
virtual QRectF boundingRect() const override;
virtual void paint(QPainter *painter,const QStyleOptionGraphicsItem *option,QWidget *widget) override;
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
private:
QPen myPen = this->pen();
QPointF point;
int pointType;
QRectF MQRect;//控制点巨型框
qreal dx;
qreal dy;
QPointF BefPoint;
};
#endif // CONTROLITEM_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化