想在Label上画个圈,运行的时候报错:“Painter not active”

看到网上说要用事件过滤器,还是琢磨了好一阵,代码如下:
mainwindow.h
bool eventFilter(QObject *obj,QEvent *event);
mainwindow.cpp
bool MainWindow::eventFilter(QObject *obj,QEvent *event)
{
if(obj == ui->label && event->type() == QEvent::Paint)
{
QPainter painter(ui->label);
QPen pen;
pen.setColor(Qt::white);
pen.setWidth(10);
painter.setPen(pen);
painter.drawEllipse(50,50,50,50);
}
return QMainWindow::eventFilter(obj, event);
}
最终效果:

本文介绍如何在Qt的Label组件上绘制圆形。通过使用事件过滤器捕捉到绘图事件,利用QPainter实现自定义绘图功能。示例代码展示了设置画笔颜色及宽度,并绘制指定位置及大小的椭圆。
904

被折叠的 条评论
为什么被折叠?



