Qt:橡皮筋类

1059 篇文章 285 订阅
 
#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();  //当鼠标松开时,橡皮筋线就可以隐藏了
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值