我在一个界面上放置了一个QWidget区域,重写了paintEvent()和timerEvent()涵数,使QWidget上显示的文本能上下滚动,但是实现文本滚动之后,整个GUI界面的响应速度变得无比迟缓.请教高手如何解决这个问题?
关键代码如下:
void KfrmText::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
int x=offset;
painter.drawText(0,x,size.width(),size.height(),Qt::AlignHCenter | Qt::AlignVCenter,text);
update(); // *
}
void KfrmText::timerEvent(QTimerEvent *event)
{
if(event->timerId()==myTimerId)
{
--offset;
if(offset<=1(size.height()/2))
{
offset=size.height();
scroll(0,-1);
}
else
{
QWidget::timerEvent(event);
}
}
}
*号处的update()加上了整个界面就会变得无比的迟缓,但是去掉update()之后,滚动文本又会变得非常不流畅.