当画面不停的需要刷新时,比如有计时器,那么painrEvent里如果再设置一些函数,比如画线函数的时候,那么就会使得整个PaintEvent函数需要不断刷新,导致CPU的占用率一直过高,在PC上还看不大出来问题,但是在嵌入式设备中,就会导致整个系统的资源被占用,带来一系列问题,在此处是这么规避的
bool Widget::eventFilter(QObject *watched, QEvent *event)
{
if(watched == ui->lbl_painter && event->type() == QEvent::Paint)
{
drawLines();
}
if(watched == this && event->type() == QEvent::Paint)
void Widget::drawLines()
{
QPainter painter(ui->lbl_painter);
painter.setPen(Qt::green);
painter.drawLine(2,2,100,100);
painter.drawLine(5,5,200,200);
}
void Widget::showCamera()
{
QPainter painter(this);
//set transparency
painter.setCompositionMode(QPainter::CompositionMode_Clear);
painter.fillRect(2, 2, 50, 50, Qt::SolidPattern);
}
此处的画线函数和别的一些就可以随意处理