【发布时间】:2010-12-07 00:00:00
【问题描述】:
我正在尝试在 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);
}
我收到此错误:没有在类“Phonon::VideoWidget”中声明的“void Phonon::VideoWidget::paintEvent(QPaintEvent*)”成员函数
所以我决定用受保护的方法 paintEvent 创建一个 myVideoWidget 标头,并在 mainwindow.cpp 中实现它,如下所示:
void myVideoWidget::paintEvent(QPaintEvent *event){
QPainter painter(this);
painter.setPen(QPen(Qt::red,3));
qDebug()<< "repintando";
painter.drawEllipse(500,500,100,100);
}
程序运行,但不绘制任何内容或显示“repintando”消息。
谁能帮帮我?我做错了什么?
非常感谢!
【问题讨论】:
-
您在调整大小或更改小部件状态(最小化/最大化)时看到了什么?尝试调用 myVideoWidget 类的 update() 方法。这有什么作用吗?
-
我试过你说的但是我什么都看不到,也看不到我发送给qDebug()的消息,这意味着该方法没有被执行。谢谢你!
标签: c++ qt4 overriding repaint qpainter