QT4 Drag Window Without Title Bar

前端 未结 3 2094
一向
一向 2020-12-28 21:17

The application I\'m working on has a custom UI that required me to remove the title bar from the main window. Unfortunately, I can\'t figure out how to make it so I can mo

3条回答
  •  无人及你
    2020-12-28 21:43

    You should try this instead

    class MyWidget : public QMainWindow
    {
    protected:
        void mouseMoveEvent(QMouseEvent* event);
        void mousePressEvent(QMouseEvent* event);
        void mouseReleaseEvent(QMouseEvent* event);
    private:
        QPoint mLastMousePosition;
        bool mMoving;
    }
    /// Source:
    void MyWidget::mousePressEvent(QMouseEvent* event)
    {
        if(event->button() == Qt::LeftButton)
        {
            mMoving = true;
            mLastMousePosition = event->pos();
        }
    }
    
    void MyWidget::mouseMoveEvent(QMouseEvent* event)
    {
        if( event->buttons().testFlag(Qt::LeftButton) && mMoving)
        {
            this->move(this->pos() + (event->pos() - mLastMousePosition));
        }
    }
    
    void MyWidget::mouseReleaseEvent(QMouseEvent* event)
    {
        if(event->button() == Qt::LeftButton)
        {
            mMoving = false;
        }
    }
    

提交回复
热议问题