想实现小黑灯、小红灯和小黄灯自动切换,用下面的代码实现画图:
void Dialog::paintEvent(QPaintEvent *)
{
QPainterPath path;
path.addEllipse(100,100,50,50);
path.addEllipse(200,100,50,50);
QPainter painter(this);
painter.setPen(Qt::green);
if((i%3)==0) painter.setBrush(Qt::black);
if((i%3)==1) painter.setBrush(Qt::red);
if((i%3)==2) painter.setBrush(Qt::yellow);
painter.drawPath(path);
i++;
}
然后用一个计时器:
m_timer = new QTimer( this);
connect(m_timer, SIGNAL(timeout()),this, SLOT(paintEvent(QPaintEvent *)) );
m_timer->start(100);
来让小灯的颜色自动改变。预期的效果是三种颜色的小灯不停地自动切换。
但是为什么小灯的颜色不能自动切换,要人为地去点击一下dialog窗口,小灯的颜色才改变呢?