關于qt_sequence_no_mnemonics(),qt 檔案說“此函式未在任何 Qt 頭檔案中宣告。要在您的應用程式中使用它,請在呼叫之前宣告函式原型。”
但是,這是什么意思?我只看到在未分發的 cpp 檔案中宣告了此函式。我如何宣告該函式,以便我可以呼叫它?
當我呼叫它時,它是否在QKeySequence的實體上?它是靜態的嗎?有人可以幫助我理解該檔案的含義嗎?
檔案在這里:https : //code.woboq.org/qt5/qtbase/src/gui/kernel/qkeysequence.cpp.html
編輯 1:我嘗試洗掉 QKeySequence 的每個匯入,并將其隔離在執行此操作的新檔案后面:
struct Configure
{
Configure()
{
// Qt::qt_set_sequence_auto_mnemonic( false );
// QKeySequence::qt_set_sequence_auto_mnemonic( false );
qt_set_sequence_auto_mnemonic( false );
}
};
Configure configure;
但這并沒有導致消除全域選單創建的快捷方式沖突。MenuBar 選單仍然定義了“助記符”,它們仍然會破壞應用程式。
僅供參考 - 我正在嘗試修改 KDevelop,而不是撰寫我自己的應用程式。我可以發布指向 KDevelop 檔案的鏈接,但我沒有做其他更改。
uj5u.com熱心網友回復:
您可以通過將其放在 .cpp 檔案頂部附近(可能就在 #includes 之后)來宣告該函式:
extern void qt_set_sequence_auto_mnemonic(bool);
...這將告訴您的編譯器該函式存在,以便稍后在同一個 .cpp 檔案中的代碼可以呼叫它而不會產生編譯時錯誤,例如:
int main(int argc, char ** argv)
{
qt_set_sequence_auto_mnemonic(true);
[...]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388247.html
標籤:C qt 键盘快捷键 qkeysequence
