我想為我在 Qt 平臺上開發的應用程式撰寫一個可以與鍵系結一起使用的函式,但是我找不到任何適合我的示例,比如我從不和諧應用程式中添加的圖片,你能幫我嗎?
不和諧鍵系結
uj5u.com熱心網友回復:
你的問題有點模糊,有幾個方面與鍵系結相關。
- 在應用程式啟動時,您可以為操作和選單分配默認快捷鍵,請參閱
QAction、QShortcut、上的檔案QMenu。 - 如果您需要一個允許更改鍵系結的對話框,您可以輕松地自己創建一個對話框。請參閱
QKeySequenceEdit幫助您為操作輸入新快捷鍵序列的檔案。 - 最后但并非最不重要的是,您需要將修改后的按鍵序列系結到您的操作。你可以通過從 QAction 派生一個類來做到這一點。通過搜索所有物件來查找這些操作,
mainWindow->findChildren<YourActionClass*>()并使用對話框中的結果修改鍵盤快捷鍵。這個派生類還可以存盤默認系結、圖示(您的用戶可能喜歡修改圖示)等。
所有這一切都非常簡單。
uj5u.com熱心網友回復:
如果您希望用戶點擊組合鍵進行選擇,那么只需創建一個繼承類QLinEdit(甚至QLabel可以作業)并覆寫 keyPressEvent,
void QLineEdit::keyPressEvent(QKeyEvent *event);
然后使用QKeyEvents 函式獲取鍵和修飾符(shift、ctrl 等)。只需閱讀有關它的 Qt 檔案。根據鍵和修飾符,寫下修飾符名稱 鍵的文本(例如Ctrl N)。
要保持操作 ( QAction),只需使用std::map<QString,QAction*>orQMap<QString,QAction*>并QAction在地圖中注冊/添加您的物件,并假設您的類的名稱是MyClass并且它具有getKeyString(),將組合鍵回傳為QString,那么您就可以了,
QString str = MyClassObj.getKeyString();
QKeySequence ks(str);
actionMap.at("NewFile")->setShortcut(ks);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/392578.html
