遇到的問題
使用Qt Creator集成開發環境進行項目編碼時,經常需要重寫父類的虛函數去實現自己想要的功能,但是當聲明這些函數時,經常遇到函數名可以自動補齊,但是函數的參數卻不能自動補齊的情況,可能是有些Qt Creator的版本支持只要敲函數名的前幾個字符就會把函數名連同參數一併給補全,但是博主使用的IDE版本中大都都只是補全函數名,函數參數不會自動補全。
如何解決
一開始博主以爲是因爲沒包含相關的頭文件導致參數無法補全,但是加了頭文件後樓主發現問題還是存在的(而且通過這麼久使用Qt的經驗,博主發現沒包含相關類的頭文件不影響你編寫代碼時對這些類方法的引用,只是在編譯的時候會拋出錯誤)。
最後,分享下如何自動補全繼承的虛函數的參數。
舉個例子:
我們經常需要重寫鼠標按下,鬆開,移動事件這三個虛函數,對應函數聲明如下所示:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
經常遇到的情況卻是:
補齊方法:
自動補齊方法其實很簡單,其實就是兩個快捷鍵外加回車鍵的使用。如果遇到上面沒有補齊的情況,當然可以去查看sdk的API文檔,然後複製黏貼補齊,但是這種方法是低效的,不建議採用。第二種方法也是樓主想要介紹的,就是,首先保證把自動生成的不帶函數形參的聲名的左右括號連同分號一起刪除掉。
如下圖:
然後先按住Shift鍵接着按住‘(9’鍵(就是字母數字9和左花括號組合的那個鍵,詳見下圖):
做完這個動作後會出現:
然後敲一下回車鍵:
敲完回車鍵後我們發現其實Qt Creator不會幫我們把後面的分號(‘;’)自動補齊,所以我們需要自己敲入:
這樣我們就把從父類繼承下來的函數連同參數在子類中的聲明寫全了。
總結
雖然上面寫了一大堆的步驟,但是總結下來就一句話:就是遇到函數聲明參數不能補齊時,首先去掉聲明的左右括號和分號;然後,按住Shift鍵和‘(9’組合鍵;最後敲下回車鍵補齊分號。