在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也會出現類似的問題