首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于拖拽窗口的有关问题

2012-04-07 
关于拖拽窗口的问题我想实现用鼠标拖拽窗口的任何位置都能移动窗口,但是现在只有在拖拽窗口上的button的时

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

热点排行