当前位置: 编程技术>c/c++/嵌入式
解决C++中事件不响应的方法详解
来源: 互联网 发布时间:2014-10-14
本文导语: 在C++开发过程由于这样那样的原因,可以会出现点击菜单、右键菜单无响应的问题,或者点击A菜单,但是响应的却是B菜单。遇到上述问题时,你可以从下面几个方面分析,一般都可以解决问题。下面从四个方面来解决问题: ...
在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也会出现类似的问题
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也会出现类似的问题