[QT]在QCameraViewfinder的控件上绘制图形

  最近接触到要在QT环境下调用USB摄像头并且将图像输出到控件当中。

  发现直接改写painevent函数会导致无法将想绘制的图像绘制在viewfinder的控件当中。这里就要分析一下在QT中绘制函数的调用机制了。

painevent是一个虚函数,必须通过继承来实现,它对于每个控件都是有的。想在哪个控件中画图就要继承哪个控件,然后在派生的子类中将painevent实例化,就可以实现在所继承的widget中绘制出图形了。

void myview::paintEvent(QPaintEvent *e)
{    QCameraViewfinder::paintEvent (e);
    QPainter painter(this);
    painter.setPen(Qt::red);
    painter.drawRect(50, 50, 100, 100);}

你可能感兴趣的:(Qt)