①旋转范围是(0-360度,已做判断360后只能为360不会变为0度,相反也是)
②设置间隔和当前值,编辑框输入和显示
③可以按照坐标进行缩放(缩放最好去掉顶部原点)
PS:还有些BUG
1、旋转按钮.h
#ifndef MYSPINBUTTON_H
#define MYSPINBUTTON_H
#include <QWidget>
#define whirlbuttonHeigth 50//圆高
#define whirlbuttonWidth 50//圆宽
#define LEFT 5 //圆左距
#define TOP 10 //圆上距
class MySpinButton : public QWidget
{
Q_OBJECT
public:
void paintEvent(QPaintEvent *event);
explicit MySpinButton(QWidget *parent = nullptr);
~MySpinButton();
void setDegree(int deg);//设置初始值
void setInterval(int interval);//设置间隔
int getDegree();//获取当前值
signals:
void updateDegree();
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseToPosion(QMouseEvent *event);
QSize sizeHint() const;
QSize minimumSizeHint() const;
private:
int degree;//当前值
int m_interval;//间隔数
int angle;
};
#endif // MYSPINBUTTON_H
2、旋转按钮.cpp
#include "myspinbutton.h"
#include <QPainter>
#include <QMouseEvent>
#include <math.h>
MySpinButton::MySpinButton(QWidget *parent) : QWidget(parent)
{
setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minim