C++ Can';t在QT C++;

C++ Can';t在QT C++;,c++,qt4,overriding,repaint,qpainter,C++,Qt4,Overriding,Repaint,Qpainter,我试图在声子库的VideoWidget上绘制一些形状,但我无法覆盖paintEvent()方法 如果我尝试实现如下方法: void Phonon::VideoWidget::paintEvent(QPaintEvent *event){ QPainter painter(this); painter.setPen(QPen(Qt::red,3)); qDebug()<< "repintando"; painter.drawEllipse(500,500

我试图在声子库的VideoWidget上绘制一些形状,但我无法覆盖paintEvent()方法

如果我尝试实现如下方法:

void Phonon::VideoWidget::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent *event){
    Phonon::VideoWidget::paintEvent(event); // perform paint event from inherited class
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void Phonon::VideoWidget::paintEvent(QPaintEvent*event){
油漆工(本);
画师:setPen(QPen(Qt::红色,3));

据我所知,您已经交付了自己的类,该类继承了Phonon::VideoWidget,并将其设置为播放器的视频小部件?如果是,则需要将paintEvent修改为以下内容:

void Phonon::VideoWidget::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent *event){
    Phonon::VideoWidget::paintEvent(event); // perform paint event from inherited class
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent*event){
Phonon::VideoWidget::paintEvent(event);//从继承的类执行绘制事件
油漆工(本);
画师:setPen(QPen(Qt::红色,3));

据我所知,您已经交付了自己的类,该类继承了Phonon::VideoWidget,并将其设置为播放器的视频小部件?如果是,则需要将paintEvent修改为以下内容:

void Phonon::VideoWidget::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent *event){
    Phonon::VideoWidget::paintEvent(event); // perform paint event from inherited class
    QPainter painter(this);
    painter.setPen(QPen(Qt::red,3));
    qDebug()<< "repintando";
    painter.drawEllipse(500,500,100,100);
}
void myVideoWidget::paintEvent(QPaintEvent*event){
Phonon::VideoWidget::paintEvent(event);//从继承的类执行绘制事件
油漆工(本);
画师:setPen(QPen(Qt::红色,3));

qDebug()在调整或更改小部件状态(最小化/最大化)时,您是否看到了一些内容?尝试调用myVideoWidget类的update()方法。这是否有用?我尝试了您所说的内容,但看不到任何内容,也看不到发送给qDebug()的消息,这意味着该方法没有被执行。同样感谢你!当你调整或更改小部件状态(最小化/最大化)时,你看到了什么吗?尝试调用myVideoWidget类的update()方法。这有什么作用吗?我尝试了你说的,但我看不到任何东西,也看不到我发送给qDebug()的消息,这意味着该方法没有被执行。同样谢谢你!我认为这是个好主意,但它不起作用。如果我只能看到椭圆,而不能看到视频,那将非常有用。问题是我没有很好地重写该方法。我做了一些错误的事情,导致paintEvent没有被执行,但不知道是什么。也许参数不正确,因此签名与VideoWidget的签名不匹配,但我已经检查过了。同样感谢!正如我所说的VideoWidget可能不会使用paintEvent渲染任何内容。你可以在VideoWidget上添加半透明的小部件,然后在该小部件上绘制。我认为这是一个好主意,但它不起作用。那就是如果我只能看到椭圆而不能看到视频,那么这很有用。问题是我没有很好地重写该方法。我做了一些错误的事情,导致paintEvent无法执行,但不知道是什么。可能参数不正确,因此签名与VideoWidget中的签名不匹配,但我已经检查过了。谢谢同样!正如我所说的,VideoWidget可能不会使用paintEvent来渲染任何东西。您可以在VideoWidget上添加半透明部件,然后在该部件上绘制