• 4484阅读
  • 1回复

[提问]关于窗体移动问题,望指教··· [复制链接]

上一主题 下一主题
离线zds8978
 
只看楼主 倒序阅读 楼主  发表于: 2011-07-20
我希望做个按钮,click时候实现某一个widget从一个绝对坐标移动到另一个绝对坐标,一个动态的移动过程


有什么好方法么?
离线wwdsadan
只看该作者 1楼 发表于: 2011-07-20
是让一个widget跟这你的鼠标移动吗?
如果是的话,解决方法是:
1. 声明
        QPoint last;
        QPoint pos;
    为该widget的数据成员

2. 为该widget添加方法
     void mousePressEvent(QMouseEvent *);
     void mouseMoveEvent(QMouseEvent *);

3. 实现方法
    void MyWidget::mousePressEvent(QMouseEvent *e)
{
    if(e->buttons()==Qt::LeftButton)
    {
        last=e->globalPos();
        pos=e->globalPos()-e->pos();
    }
}

void MyWidget::mouseMoveEvent(QMouseEvent *e)
{
    if(e->buttons() && Qt::LeftButton)
    {
        QPoint newpos = e->globalPos();
        QPoint upleft = pos + newpos - last;
        this->move(upleft);
    }
}
    
快速回复
限100 字节
 
上一个 下一个