关于拖拽窗口的问题
我想实现用鼠标拖拽窗口的任何位置都能移动窗口,但是现在只有在拖拽窗口上的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(); }}