美文网首页
Qt 自定义移动PushButton

Qt 自定义移动PushButton

作者: Caiaolun | 来源:发表于2020-01-15 10:48 被阅读0次
    /************************************************
     * Class: MoveButton
     *
    ************************************************/
    class MoveButton : public QPushButton
    {
        Q_OBJECT
    public:
        explicit MoveButton(QWidget *parent = nullptr);
    
    signals:
    public slots:
    
    public :
    
    private:
        void mousePressEvent(QMouseEvent *event);
        void mouseMoveEvent(QMouseEvent *event);
    
    public:
    
        QPoint m_stLastPoint;
    
    };
    
    /************************************************
     * Class: MoveButton
     *
    ************************************************/
    MoveButton::MoveButton(QWidget *parent) : QPushButton(parent)
    {
        m_stLastPoint = this->pos();
    }
    
    void MoveButton::mousePressEvent(QMouseEvent *event)
    {
        if (event->button() == Qt::LeftButton)
        {
    //      m_stLastPoint = event->globalPos() - pos();
            m_stLastPoint.setY(event->globalY() - y());
            event->accept();
        }
    }
    
    void MoveButton::mouseMoveEvent(QMouseEvent *event)
    {
        if (event->buttons() & Qt::LeftButton)
        {
    //      move(event->globalPos() - m_stLastPoint());
            move(m_stLastPoint.x(), event->globalY() - m_stLastPoint.y());
            event->accept();
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:Qt 自定义移动PushButton

          本文链接:https://www.haomeiwen.com/subject/mxftzctx.html