美文网首页
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