Qt使用QPainter在子控件上绘图_qt如何在控件上绘图呢,我使用qpinter在控件t上绘图但是不显示-程序员宅基地

技术标签: 过滤器  Qt  qt  event  

Qt使用QPainter在子控件上绘图

因为Qt存在事件过滤机制,事件过滤器会将子控件上的绘图事件过滤,因此无法在子控件上使用QPainter进行绘图

如果需要在子控件上使用QPainter,同样需要事件过滤器

事件过滤器

事件过滤器与其他部件不同,它不是一个类,只是由两个函数组成的一种操作
用来完成一个部件对其他部件的事件监视,这两个函数分别是installEventFilter()和eventFilter(QObject *obj, QEvent *ev),都是QObject类中的函数

使用步骤:
  • 安装事件过滤器: ui->paint_widget(子控件名,可更换为需要使用的控件)->installEventFilter(this);
  • 实现在过滤器中指定的操作

事件过滤器的实现(具体代码):

bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{
    
    if(watched == ui->paint_widget && event->type() == QEvent::Paint)
    {
    
        showPaint(); //响应函数
    }
    return QWidget::eventFilter(watched,event);
}

//实现响应函数
void MainWindow::showPaint()
{
    
    QPainter painter(ui->paint_widget);
    painter.setPen(Qt::gray);
    painter.setBrush(Qt::green);
    painter.drawRect(10,10,200,200);
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Wangguang_/article/details/106767925

智能推荐

SpringMVC——DispatcherServlet配置文件应该放在哪里?_springboot dispatcherservlet 放在哪里-程序员宅基地

文章浏览阅读7.2k次,点赞4次,收藏4次。第一种情况第二种情况总结 SpringMVC框架,最关键的一个任务就是配置DispatcherServlet。 DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。 但是,我们在搭建Spri_springboot dispatcherservlet 放在哪里

ssm/php/node/python阳光心理健康网站-程序员宅基地

文章浏览阅读783次,点赞23次,收藏15次。后端SSM框架结合了Spring的依赖注入和事务管理、SpringMVC的模型-视图-控制器架构以及MyBatis的数据持久化功能,为后端开发提供全面的支持。构建一个能够提供科学、有效心理支持的平台,对于促进个体的心理健康和社会的和谐发展具有重大意义。阳光心理健康网站sope9正是这样一处网络绿洲,它通过发布权威的心理健康资讯、提供在线咨询服务,以及分享实用的自助工具和策略,帮助人们建立起积极面对生活挑战的心理机制。它的存在,让更多的人能够在面对生活的挑战时,拥有一颗更加坚强和健康的心。

【附源码】JAVA计算机毕业设计校友信息系统(源码+mysql+文档)-程序员宅基地

文章浏览阅读748次,点赞28次,收藏7次。该系统能够提供一个完善的校友数据库,使得校友信息的收集、整理和查询变得更加高效,为学校提供了强有力的信息支持。最后,一个功能齐全的校友信息系统能够提升学校的品牌形象,展现学校的现代化管理水平,对外树立良好的学校形象.“dx9w1”校友信息系统的设计和实施,不仅能够提升校友工作的质量和效率,还能够为学校和校友之间搭建一个持续互动、共同发展的平台,具有重要的现实意义和长远价值。通过系统化的信息管理,不仅可以加强校友之间的交流合作,还能够有效地促进校友资源的开发利用,增强学校的凝聚力和社会影响力。

关于dl,dt,dd_vue dl dt-程序员宅基地

文章浏览阅读818次。DL解说列表(definition list)通常用于术语的定义,由标签对实现,它包含两个部分:术语和描述。术语由标签开始,英文意为definition term。术语的解释说明由标签实现,并且标签后的文字变缩进显示。第一项 第一子列表项 第二子列表项 第三子列表项 第二项 第一子列表项 第二子列表项 第三子列表项显示结果:第一项 第一子列表项 第二子列表项 第三子列表项第二项 第一子列表项_vue dl dt

[调试技术] GDB 设置源码搜索路径_gdb directory-程序员宅基地

文章浏览阅读2.3k次。参考:设置 GDB 代码搜索路径_小猪爱拱地-程序员宅基地_gdb 路径在用GDB进行 debug的时候,可以用 directory 设置搜索目录,用 show direcories 显示设置的搜索目录:(gdb) show directories Source directories searched: $cdir:$cwd(gdb) directory /homeSource directories searched: /home:$cdir:$cwhttps://blog.csdn.net/ca._gdb directory

《前端开发 实践之 腾讯地图API 学习》_new qq.maps.geocoder-程序员宅基地

文章浏览阅读734次。腾讯地图。_new qq.maps.geocoder

随便推点

八.EtherCAT开发之 LAN9253 IO控制-程序员宅基地

文章浏览阅读569次。Microchip Technology LAN9252 是一款 2/3 端口 EtherCAT 从控制器。它带有双通道集成以太网物理层设备,每个通道均包含全双工 100BASE-TX 收发器,支持 100 Mbps (100BASE-TX) 工作。该器件支持四个过程数据接口 - SPI/SQI、HBI 和 16 位数字 I/O。SPI 和 SQI(高速 SPI)提供了一种便于实现该器件与主机系统通信的低引脚数同步从接口。_lan9253

OpenAI官方发布ChatGPT API接口gpt-3.5-turbo_chatgpt开源模型3.5 api-程序员宅基地

文章浏览阅读207次。OpenAI官方发布ChatGPT API接口gpt-3.5-turbo_chatgpt开源模型3.5 api

How to stop #including redundant headers?-程序员宅基地

文章浏览阅读115次。I was faced with a problem when debugging the ETH_light code. The compiler kept reporting redeclaration error about the waitstatus.h file.To solve this issue, the endian.h file created privately was

【Linux】openssh内网环境下升级_内网升级openssh-程序员宅基地

文章浏览阅读1k次。主要讲内网更新方法。本篇内容虽经过多次实测,但建议参照本篇升级时先在测试环境进行验_内网升级openssh

大语言模型如何充分理解人类自然语言指令-程序员宅基地

文章浏览阅读1.6k次,点赞43次,收藏22次。经过海量数据预训练后的语言模型虽然具备了大量的知识,但是由于其训练的目标仅是进行下一个词的预测,此时的模型还不能够理解并遵循人类自然语言的指令。指令微调(Instruction Tuning),是指在已经训练好的语言模型的基础上,通过使用有标注的特定任务数据,进行进一步微调,从而使得模型具备遵循指令的能力。_自然语言指令

Kibana:Canvas 教程 - 创建一个工作台以监视销售_kibana监控网购平台-程序员宅基地

文章浏览阅读1.9k次。Canvas 是位于 Kibana 中的数据可视化和演示工具。 使用 Canvas,你可以直接从 Elasticsearch 提取实时数据,并将数据与颜色,图像,文本和您的想象力结合起来,以创建动态的,多页面,像素完美的显示。 如果你有点创意,技术性以及好奇心,那么 Canvas 就是你的理想选择。使用 Canvas,你可以:使用背景,边框,颜色,字体等创建和个性化你的工作空间。 使用自己的可视化效果(例如图像和文本)自定义工作台。 直接从 Elasticsearch 提取数据,然后通过图表,图_kibana监控网购平台

推荐文章

热门文章

相关标签