【Qt】将控件均匀分布到圆环上
1. 关键代码
for(int i=0; i<10; i++)
{
/*
m_panLabelIcon - 大圆环控件
m_slotsIcon[i] - 小圆控件
*/
QString idxStr = QString::number(i+1);
m_slotsIcon[i] = new QLabel(m_panLabelIcon);
m_slotsIcon[i]->setFont(ftSlot);
m_slotsIcon[i]->setText(idxStr);
m_slotsIcon[i]->setAlignment(Qt::AlignCenter);
m_slotsIcon[i]->setStyleSheet("border-image:url(:/Icon/Icon/de_icon.png)");
//关键代码
/*
40 - 1号小圆圆心的x坐标
200 - 1号小圆圆心的y坐标
160 - 小圆圆心到圆环圆心的距离
10.0 - 小圆的个数
30 - 圆环外径半径
60 - 圆环外径直径
*/
double x = 40 + 160*(1-qCos(qDegreesToRadians(360/10.0*i)));
double y = 200 - 160*qSin(qDegreesToRadians(360/10.0*i));
m_slotsIcon[i]->setGeometry(QRect(int(x)-30, int(y)-30, 60, 60));
}