赞
踩
注:ButterFly为类名,可以忽略
一.使用scenePosition()函数获取子窗口点击位置相对于父窗口左上角位置的点
- void ButterFly::mousePressEvent(QMouseEvent *event)
- {
- if(event->button()==Qt::LeftButton)
- {
- m_pt=event->position();//使用类的成员变量记录鼠标按下位置
- }
- }
- void ButterFly::mouseMoveEvent(QMouseEvent *event)
- {
- if(event->buttons()&Qt::LeftButton)
- {
- //这样写的目的是move函数只能穿QPoint或两个整数
- int x=event->scenePosition().x()-m_pt.x();
- int y=event->scenePosition().y()-m_pt.y();
- this->move(x,y);
- }
- }
二.使用整个屏幕为坐标系
- void ButterFly::mousePressEvent(QMouseEvent *event)
- {
- if(event->button()==Qt::LeftButton)
- {
- m_pt=event->globalPos() - this->geometry().topLeft();
- }
- }
-
- void ButterFly::mouseMoveEvent(QMouseEvent *event)
- {
- if(event->buttons()&Qt::LeftButton)
- {
- this->move(event->globalPos() - m_pt );
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。