Qt的橡皮筋类

https://www.jianshu.com/p/5f20e2cd3ee0
#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setBackgroundRole(QPalette::Light);
    this->setAutoFillBackground(true);

    resize(400,360);
    setWindowTitle("Rubber");
    rubberBand = NULL;
}

Widget::~Widget()
{

}

// QPoint origin;
void Widget::mousePressEvent(QMouseEvent *e)
{
    origin = e->pos();
    if(!rubberBand){
        rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
    }
    rubberBand->setGeometry(QRect(origin, QSize()));//设置了橡皮筋线的位置及大小
    rubberBand->show();
}

void Widget::mouseMoveEvent(QMouseEvent *e)
{
    if(rubberBand)
           rubberBand->setGeometry(QRect(origin,e->pos()).normalized());
    //normalized() 函数返回的也是一个QRect的对象,不过该对象的长和宽的值都是大于零时值
}
void Widget::mouseReleaseEvent(QMouseEvent *e)
{
//    if(rubberBand)
//          rubberBand->hide();  //当鼠标松开时,橡皮筋线就可以隐藏了
}

 

转载于:https://my.oschina.net/u/3919756/blog/1975982

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值