1. 程式人生 > >kevin_xiang的專欄,mail: [email protec

kevin_xiang的專欄,mail: [email protec

定義標頭檔案

    QPoint move_point; //移動的距離
    bool mouse_press; //按下滑鼠左鍵

protected:
    void mousePressEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);

複寫實現函式:

void Dialog::mousePressEvent( QMouseEvent * event )
{
    //只能是滑鼠左鍵移動和改變大小
    if(event->button() == Qt::LeftButton)
    {
        mouse_press = true;
    }

    //視窗移動距離
    move_point = event->globalPos() - this->pos();
    qDebug() << "pos()" << this->pos().x() << " " << this->pos().y() ;
    qDebug() << "globalPos()" << event->globalPos().x() << " " << event->globalPos().y() ;
}

void Dialog::mouseReleaseEvent

(QMouseEvent *)
{
    mouse_press = false;
}

void Dialog::mouseMoveEvent(QMouseEvent *event)
{
    //移動視窗
    if(mouse_press)
    {
        QPoint move_pos = event->globalPos();
        move(move_pos - move_point);
    }
}