可以点击圆环里面的小圆形,选中的为当前的位置
#include "samplestatuswidget.h"
#define MY_PI 3.14159265358979323846
const QColor SampleStatusWidget::scolor[STATE_NUM]={
QColor(255,255,255),QColor(0,255,0),QColor(170,0,127),QColor(170,0,255)};
const QColor SampleStatusWidget::tcolor[TYPE_NUM]={
QColor(Qt::white),QColor(Qt::green),QColor(Qt::red),QColor(Qt::magenta), QColor(Qt::yellow),QColor(Qt::gray)};
SampleStatusWidget::SampleStatusWidget(QWidget *parent) : QWidget(parent)
{
for(int i=0;i<40;i++)
{
m_status[i].s=state(i%STATE_NUM);//STATE_IDLE;
m_status[i].t=type(i%TYPE_NUM);//TYPE_NULL;
}
current=-1;
}
void SampleStatusWidget::paintEvent(QPaintEvent *e)
{
R=width()/2-1;
m_center.setX(width()/2);
m_center.setY(height()/2);
QPainter paint;
paint.begin(this);
paint.setRenderHint(QPainter::Antialiasing);//平滑曲线
paint.setPen(QPen(Qt::black,2,Qt::SolidLine));
paint.drawEllipse(m_center,R,R);
paint.drawEllipse(m_center,R-50,R-50);
// paint.drawEllipse(m_center,R-20,R-20);
int mr=getR(R-25);
MR=R-25;
r1=mr;
r0=mr-6;
for(int i=0;i<40;i++)
{
QPoint cp;
QRect re;
cp.setX(m_center.x()+qCos(2*MY_PI/