Qt 怎么让控件自己定时重绘啊?
RT,在主窗口中加了个控件,然后想实现控件的定时重绘。
现在做了个 QTimer 在timeout()时调用控件的 repaint(). 可是行不通。
好像是主窗口觉得不需要重绘,所以没有触发控件的 paintevent. 求解决办法!
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(UpdateUI()));
timer->start(1000);
// 定时时间到,重绘
void LCDPlane::UpdateUI()
{
this->repaint();
}
// 重绘函数
void LCDPlane::paintEvent(QPaintEvent * event)
{
timeCnt = sUI_LcdInit(timeCnt);
if ( 1 == timeCnt )
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(QBrush(WindowBackGroundColor, Qt::SolidPattern));
painter.drawEllipse(50, 40, 400, 300);
}
else
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(QBrush(QColor(0x00ff00), Qt::SolidPattern));
painter.drawEllipse(50, 40, 400, 300);
}
}