Qt實現鼠標拖動窗口


QPoint m_StartPoint; //鼠標按下起點
bool m_bMousePress; //按下鼠標左鍵

void CMyUpdateDlg::mouseMoveEvent(QMouseEvent *event)
{
    //移動窗口
    if (m_bMousePress)
    {
        QPoint curPoint = event->globalPos();   //按住移動時的位置
        QPoint movePoint = curPoint - m_StartPoint;

     //普通窗口 QPoint mainWinPos
= this->pos(); this->move(mainWinPos.x() + movePoint.x(), mainWinPos.y() + movePoint.y());

     //標題欄
     QPoint mainWinPos = QPoint(parentWidget()->x(), parentWidget()->y());
     QPoint pos = mainWinPos + movePoint;
     parentWidget()->move(pos);
m_StartPoint
= curPoint; } } void CMyUpdateDlg::mousePressEvent(QMouseEvent * event) { //只能是鼠標左鍵移動和改變大小 if (event->button() == Qt::LeftButton) { m_bMousePress = true; } //按下時鼠標左鍵時,窗口在屏幕中的坐標 m_StartPoint = event->globalPos(); } void CMyUpdateDlg::mouseReleaseEvent(QMouseEvent * event) { m_bMousePress = false; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM