使widget 没标题栏时仍可拖动

来源:互联网 发布:php finally 编辑:程序博客网 时间:2024/06/06 15:43

正如我们所知,当有标题栏时,我们是可以随便拖动窗口的,但是有时我们希望创建的窗口时没有标题栏的,而此时要想拖放该窗体,我们就得另想办法了,其实最简单的思路就是重载窗体的mousePressEvent和mouseMoveEvent两个虚函数。其实这样做就是可以的,虽然看是去是3有点简单了。

 

这其中所用到的一些变量的解释如下:

const QPoint & QMouseEvent::globalPos () const

返回的是当鼠标事件发生时,鼠标所在的全局的位置即以整个的屏幕为对象来说的,在整个屏幕中的位置。

 

QPoint QWidget::mapToGlobal ( const QPoint & pos ) const

将参数所给的坐标转换为 其在整个屏幕上的位置

 

QPoint QWidget::mapFromGlobal ( const QPoint & pos ) const

和上面的函数的作用正好相反,他是将屏幕坐标转换为widget中的坐标