转:QT实现阴影窗口(二)

从上一篇的效果可以看到窗口并不美观,而且不能用鼠标进行拖动,还不可以实现最大最小化。

      要实现用鼠标拖动可以,重载鼠标点击和鼠标移动事件的处理,具体如下:

     //GraphicDialog.h

     protected:

          void mousePressEvent(QMouseEvent *)
          void mouseMoveEvent(QMouseEvent* );

     private:

          QPoint  last;//保存鼠标按下的位置


     //GraphicDialog.cpp

     void GraphicDialog::mousePressEvent(QMouseEvent *e) 
     { 
          last = e->globalPos(); 
     }

     void GraphicDialog::mouseMoveEvent(QMouseEvent *e) 
     { 
          if(e->buttons()== Qt::LeftButton) 
          { 
               QPoint newpos = e->globalPos(); 
               QPoint upleft = mapToParent(newpos - last); //计算距原位置的偏移
               move(upleft); 
               last = newpos; //更新原位置到最新的位置
          } 
     } 
     这时已经可以用鼠标手动窗口到任意位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值