读书人

关于拖拽窗口的有关问题

发布时间: 2012-04-07 17:31:50 作者: rapoo

关于拖拽窗口的问题
我想实现用鼠标拖拽窗口的任何位置都能移动窗口,但是现在只有在拖拽窗口上的button的时候才能成功,不知道是什么问题啊

C/C++ code
//鼠标拖动窗口void Widget::mousePressEvent(QMouseEvent *event){    //点击鼠标左边    if (event->button() == Qt::LeftButton) {        *dragPosition = event->globalPos() - frameGeometry().topLeft();        //鼠标事件被系统接收        event->accept();        }}void Widget::mouseMoveEvent(QMouseEvent *event){    //当满足鼠标左键被点击时    if (event->buttons() == Qt::LeftButton) {        //移动窗口        move(event->globalPos() - *dragPosition);        event->accept();       }}


[解决办法]
void Widget::mousePressEvent(QMouseEvent *event)
{
//点击鼠标左边
if (event->button() == Qt::LeftButton) {
mousePosition = event->pos();
//QPoint mousePosition
//鼠标事件被系统接收

}
}

void Widget::mouseMoveEvent(QMouseEvent *event)
{
//当满足鼠标左键被点击时
if (event->buttons() == Qt::LeftButton) {
//移动窗口
move(event->globalPos() - mousePosition);

}
}

用鼠标拖拽窗口的任何位置都能移动窗口。
[解决办法]
C/C++ code
void Widget::mouseMoveEvent(QMouseEvent *event){    //当满足鼠标左键被点击时    if (event->buttons() & Qt::LeftButton) {        //移动窗口        move(event->globalPos() - *dragPosition);        event->accept();       }} 

读书人网 >QT开发

热点推荐