qt如何向子窗口发送send/post自定义事件

barryzhanghu 2020-02-28 05:29:54
最近需要更改一个GUI,原eventfilter安装在mainwindow中ui->boardView 下监听左右键,但是我需要将监听的事件替换为自定义事件 (当某个变量超过阈值)。但是在main.cpp中我需要手动send事件,但是只能send给mainwindow w, 而不能到ui->boardView,事件监测器也无法监听事件。相关代码可见于https://stackoverflow.com/questions/60424216/how-to-use-eventfilter-under-child-widget-to-catch-self-define-event 或知乎https://www.zhihu.com/question/375221137
...全文
681 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
barryzhanghu 2020-03-05
  • 打赏
  • 举报
回复
怎么做呢?return吗?
非弋 2020-03-05
  • 打赏
  • 举报
回复
引用 5 楼 barryzhanghu 的回复:
怎么做呢?return吗?
就是return啊,你试一下就知道了
非弋 2020-02-29
  • 打赏
  • 举报
回复
引用 2 楼 barryzhanghu 的回复:
问题是ui 定义在mainwindow内,一旦我在main.cpp中修改为QCoreApplication::postEvent(ui->boardView, .....), 编译的时候就报错 ui:used of undeclared identifier, 有什么办法可以解决呢?
如果只是简单的解决这个编译报错,你可以在MainWindow中写一个方法将ui->boardView对象抛出来
donwmufromdying 2020-02-29
  • 打赏
  • 举报
回复
你估计没有真正了解event机制。一个对象要能接收并处理event首先要继承自QObject,其次要自己实现event(),第三:该对象要启动eventloop.一般有eventloop的类基本上都有这么一个函数启动eventloop:exec()
非弋 2020-02-28
  • 打赏
  • 举报
回复
5:29发的帖子 void QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority) 第一个参数是接收者的对象 修改为QCoreApplication::postEvent(ui->boardView, .....),ui->boardView窗口才可以接收到事件
barryzhanghu 2020-02-28
  • 打赏
  • 举报
回复
问题是ui 定义在mainwindow内,一旦我在main.cpp中修改为QCoreApplication::postEvent(ui->boardView, .....), 编译的时候就报错 ui:used of undeclared identifier, 有什么办法可以解决呢?
源码地址: https://pan.quark.cn/s/a4b39357ea24 欧姆龙触摸屏编程软件MPTST 5.02是专门为欧姆龙品牌的工业触摸屏而研发的编程解决方案,它赋予用户在直观界面上构建、修改以及排错触摸屏应用程序的能力。 该软件在工业自动化领域具有不可替代的地位,特别是在生产线监视、设备操控以及人机互动系统中发挥着核心作用。 欧姆龙MPTST(Machine Process Terminal Software Touch)5.02版本配备了多样化的功能,旨在应对不同种类的触摸屏项目要求。 以下列举了若干核心特性:1. **图形化编程**:MPTST 5.02采用图形化的编程模式,允许用户借助拖拽动作来设计屏幕布局,设定按钮、滑块、指示灯等组件,显著简化了编程流程,并提升了工作效率。 2. **兼容性**:该软件能够适配欧姆龙的多个触摸屏产品线,包括CX-One、NS系列、NJ/NX系列等,使用户可以在同一个平台上完成对不同硬件的编程任务。 3. **数据通信**:MPTST 5.02具备与PLC(可编程逻辑控制器)进行数据交互的能力,通过将触摸屏作为操作界面,实现生产数据的显示与输入,以及设备状态的监控。 4. **报警与事件管理**:软件中集成了报警和事件管理机制,可以设定多种报警标准,一旦达到预设条件,触摸屏便会展示对应的报警提示,助力操作人员迅速做出响应。 5. **模拟测试**:在设备实际连接之前,MPTST 5.02支持用户进行脱机模拟测试,以此验证程序的正确性与稳定性。 6. **项目备份与恢复**:为了防止数据遗失,MPTST 5.02提供了项目文件的备份及还原功能,对于多版本控制与团队协作具有显著价值。 7. **多语言支持**:针对全球化的应...

21,474

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧