• 8523阅读
  • 4回复

如何点击窗口的任意一点实现拖动? [复制链接]

上一主题 下一主题
离线tsuibin
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-03
点击窗口的任何一个部分,都可以拖动,这个要怎么设置?
离线浪迹江湖

只看该作者 1楼 发表于: 2009-04-03
不理解你问题的意思 说详细点好不好
离线shanyun

只看该作者 2楼 发表于: 2009-04-03
QWidget 有公有函数可以控制窗体显示位置(详见Qt助手)

QPoint pos () const
void move ( const QPoint & )
void move ( int x, int y )

思路:按下鼠标时获取当前光标位置(x1,y1)及窗体位置(X,Y),弹起鼠标时记下新鼠标位置(x2,y2),计算差值(delx,delty)。窗体新位置为(X+deltx,Y+delty)
离线lazybone
只看该作者 3楼 发表于: 2009-04-03
    protected void mousePressEvent(QMouseEvent e) {
        oldX = e.x();
        oldY = e.y();
        canMove = true;
    }
    boolean canMove ;
    protected void mouseReleaseEvent(QMouseEvent e) {
        canMove = false;
    }

    int oldX = 0;
    int oldY = 0;

    protected void mouseMoveEvent(QMouseEvent e) {
        if (!canMove)
            return;
        move(x() + e.x() - oldX, y() + e.y() - oldY);
    }

要用好论坛的搜索功能
http://www.qtcn.org/bbs/read.php?tid=14486&keyword=%CD%CF%B6%AF
离线duduqq

只看该作者 4楼 发表于: 2009-04-03
楼上正解
快速回复
限100 字节
 
上一个 下一个