[问题] qt用paintEvent画出幸运绳样式

楼主: MOONY135 (谈无欲)   2017-09-27 15:38:45
开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
vs2015
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
qt5.7
问题(Question):
https://7.share.photo.xuite.net/janma120/17c29ae/8054095/316713311_m.jpg
请问要怎样用paintEvent画出类似上图这种幸运绳的颜色的圈圈
想要这个幸运绳是围绕成一圈的 然后每一个drawConvexPolygon
都可以更改自己的颜色
目前是用rotate 但效果不怎么好
https://gyazo.com/36249c51e977378096698ff2c5746244
以下是我的code
void rotateQLabel::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
QPointF handhour[4] = {
QPoint(100, 0),
QPoint(120, 0),
QPoint(120, 2),
QPoint(100, 2)
};
QPointF handhour2[4] = {
QPoint(100, 2),
QPoint(120, 2),
QPoint(120, 4),
QPoint(100, 4)
};
QPointF handhour3[4] = {
QPoint(100, 4),
QPoint(120, 4),
QPoint(120, 6),
QPoint(100, 6)
};
for (size_t i = 0; i < 10; i++)
{
qDebug() << "rotateValue + i * 3: " << rotateValue + i * 3;
painter.rotate(i);
QColor panColor11(240, 0, 0);
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(panColor11, Qt::SolidPattern));
painter.drawConvexPolygon(handhour, 4);
QColor panColor22(0, 240, 0);
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(panColor22, Qt::SolidPattern));
painter.drawConvexPolygon(handhour2, 4);
QColor panColor33(0, 0, 240);
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(panColor33, Qt::SolidPattern));
painter.drawConvexPolygon(handhour3, 4);
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com