Qt5 painter在控件上绘图无反应(利用eventFilter实现控件内容绘制)
painter在控件上绘图无反应(eventFilter的使用)1、为控件安装事件过滤器2、在头文件中添加绘制函数和事件过滤函数3、函数实现4、效果如下1、为控件安装事件过滤器ui->lblImage->installEventFilter(this);//安装事件过滤器2、在头文件中添加绘制函数和事件过滤函数bool eventFilter(QObject *obj, QEv...
·
painter在控件上绘图无反应(eventFilter的使用)
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、效果如下
更多推荐
已为社区贡献1条内容
所有评论(0)