Qt实现可拖动按钮实现可拖动按钮
主要为大家详细介绍了Qt实现可拖动按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小
伙伴们可以参考一下
本文实例为大家分享了Qt实现可拖动按钮的具体代码,供大家参考,具体内容如下
直接上代码直接上代码
self-contained.h
#ifndef SELFCONTAINED_H
#define SELFCONTAINED_H
#include <QWidget>
#include <QPainter>
#include <QTimer>
#include <QImage>
#include <QMouseEvent>
#include <QVector>
#endif // SELFCONTAINED_H
按钮控件按钮控件
drawbutton.h:
#ifndef DRAGBUTTON_H
#define DRAGBUTTON_H
#include "self-contained.h"
class DragButton : public QWidget
{
Q_OBJECT
public:
DragButton(QWidget *parent = 0);
void setInitialScaling(double scaling);
void setPixmap(QString pixmap);
void setText(QString str);
void setIsHold(bool flag);
protected:
int isPress;
int isHold;
QTimer *m_aniTimer;
QTimer *m_holdTimer;
double m_scaling;
double m_InitialScaling;//当前缩放比例
QPoint m_mouseSrcPos;//最小缩放比例
QPixmap m_pixmap;
QString m_text;
void paintEvent(QPaintEvent *);
void enterEvent(QEvent *);
void leaveEvent(QEvent *);
void mousePressEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
signals: