代码如下:
使用 p.setPen(Qt::gray)cpu 占用达到60%,而使用p.setPen(Qt::NoPen);不到20%
这是怎么回事呢?
Qt::NoPen是只填充不画边框,就这么点差别,cpu就查这么多吗?
void ChaseWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter p(this);
if (m_pixmapEnabled
&& !m_pixmap.isNull()) {
p.drawPixmap(0, 0, m_pixmap);
return;
}
const int extent = qMin(width() - 8, height() - 8);
const int displ = extent / 4;
const int ext = extent / 4 - 1;
p.setRenderHint(
QPainter::Antialiasing, true);
p.setPen(Qt::gray);
//p.setPen(Qt::NoPen);
p.translate(width() / 2, height() / 2); // center
for (int segment = 0; segment < segmentCount(); ++segment) {
p.rotate(QApplication::isRightToLeft() ? m_step : -m_step);
p.setBrush(colorForSegment(segment));
p.drawEllipse(QRect(displ, -ext / 2, ext, ext));
}
}
[ 此帖被maidisula在2011-04-25 09:59重新编辑 ]