Qt5 painter在控件上绘图无反应(利用eventFilter实现控件内容绘制)

Helen ·
更新时间:2024-11-14
· 678 次阅读

painter在控件上绘图无反应(eventFilter的使用)1、为控件安装事件过滤器2、在头文件中添加绘制函数和事件过滤函数3、函数实现4、效果如下 1、为控件安装事件过滤器 ui->lblImage->installEventFilter(this);//安装事件过滤器 2、在头文件中添加绘制函数和事件过滤函数 bool eventFilter(QObject *obj, QEvent *event);//事件过滤 void labelPaint(QImage image);绘制函数 3、函数实现 bool TraceabilitySystem::eventFilter(QObject *obj, QEvent *event) { if(obj==ui->lblImage && event->type()==QEvent::Paint)//判断是否是lblImage控件,是否是绘制事件 { labelPaint(drawImage);//绘制 } return QWidget::eventFilter(obj,event); } void TraceabilitySystem::labelPaint(QImage image) { QPainter pp(ui->lblImage); QImage res=image.scaled(ui->lblImage->size(),Qt::IgnoreAspectRatio);//拉伸图片 pp.begin(&res); pp.drawImage(0, 0, res); pp.end(); update(); 4、效果如下

在这里插入图片描述


作者:xiaohuihuihuige



painter qt5

需要 登录 后方可回复, 如果你还没有账号请 注册新账号