在C++开发过程由于这样那样的原因,可以会出现点击菜单、右键菜单无响应的问题,或者点击A菜单,但是响应的却是B菜单。遇到上述问题时,你可以从下面几个方面分析,一般都可以解决问题。下面从四个方面来解决问题:
1、检查菜单ID对于的事件映射表是否存在,如果不存在肯定不会响应
2、检查菜单ID与其它菜单ID是否出现重复,如果出现重复可能出现张冠李戴的现象(点击A菜单,但是响应B菜单的行为)
3、菜单ID与对应菜单事件的映射表ID是否一致,可能出现菜单ID与事件映射表的ID不一致
4、在Qt中,要注意信号函数是否忘记写括号:
connect(underBtn,SIGNAL(clicked()),this,SLOT(slotUnder()));
如果出现SLOT(slotUnder())中的slotUnder函数忘记写括号,也会出现事件无法响应的问题。
对于第四点,MFC、wxwidgets也会出现类似的问题
相关文章
- 微信小程序中 scroll-view触底事件不触发的解决方法
- UIImageView中的UIButton不响应事件解决方案
- 关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法
- C++中 string 中的方法的使用详解
- php_DWZ-JUI中碰到的问题解决方法详解(thinkphp+dwz)
- 在C++中模拟委托事件的方法(六)
- 详解C++程序中定义struct结构体的方法
- 在C++中模拟委托事件的方法(三)
- vue中数据不响应的问题及解决方法
- 漫话JavaScript与异步·第三话——Generator:化异步为同步 一、Promise并非完美 我在上一话中介绍了Promise,这种模式增强了事件订阅机制,很好地解决了控制反转带来的信任问题、硬编码回调执行顺序造成的“回调金字塔”问题,无疑大大提高了前端开发体验。但有了Promise就能完美地解决异步问题了吗?并没有。 首先,Promise仍然需要通过then方法注册回调,虽然只有一层,但沿着Promise链一长串写下来,还是有些让人头晕。 更大的问题在于Promise的错误处理比较麻烦,因为Promise链中抛出的错误会一直传到链尾,但在链尾捕获的错误却不一定清楚来源。而且,链中抛出的错误会fail掉后面的整个Promise链,如果要在链中及时捕获并处理错误,就需要给每个Promise注册一个错误处理回调。噢,又是一堆回调! 那么最理想的异步写法是怎样的呢?像同步语句那样直观地按顺序执行,却又不会阻塞主线程,最好还能用try-catch直接捕捉抛出的错误。也就是说,“化异步为同步”!