17
A
回答
29
試試這個:
new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this, SLOT(close()));
您可以在形式的構造器創建它。這樣可以避免使用訪問快捷方式的指針污染您的課程。如果您想稍後訪問它,您可能仍然需要添加指向該快捷方式的指針。當應用程序退出時,該快捷方式將被刪除,因爲它已成爲父項。它會自動進行連接,您不必手動完成。
另請注意,Windows上沒有默認的Ctrl + Q序列,但Linux和MacOS上有一個。
27
由於CTRL-Q可能有一個菜單項或工具欄條目,我認爲您正在尋找QAction。
看到這個: http://doc.qt.digia.com/4.6/qaction.html#shortcut-prop
LE:
的QAction
在工作例:
QAction *foo = new QAction(this);
foo->setShortcut(Qt::Key_Q | Qt::CTRL);
connect(foo, SIGNAL(triggered()), this, SLOT(close()));
this->addAction(foo);
只需創建一個新的Qt GUI項目(我用QtCreator)和代碼添加到主窗口的構造函數,它應該按預期工作。
請注意,不需要釋放內存,因爲Qt框架將在應用程序關閉時處理該內存。
1
這是一個示例,用於創建文件菜單並退出信號和插槽之間的操作和連接。
QMenu *fileMenu = new QMenu(trUtf8("&File"));
QAction *actionExit = new QAction(tr("E&xit"));
//set "ctrl+q shortcut for exit action
actionExit->setShortcut(tr("CTRL+Q"));
//connect triggered signal of actionExit to close slot
connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
//add actionExit into file menu
fileMenu->addAction(actionExit);
0
對於現代的Qt(5.9截至目前):
void MainWindow::bootStrap()
{
// create shortcut
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
// connect its 'activated' signal to your function 'foo'
QObject::connect(shortcut, &QShortcut::activated,
this, &MainWindow::foo);
}
// somewhere in the code, define the function 'foo'
void MainWindow::foo()
{
qDebug() << "Ctrl+Q pressed.";
}
不要忘記#include <QShortcut>
。
相關問題
- 1. 自定義鍵盤快捷鍵
- 2. 如何編程android鍵盤快捷鍵
- 3. 如何將自定義鍵盤快捷鍵添加到GWT CellTable
- 4. 如何在Android Studio中創建自定義鍵盤快捷鍵
- 5. 如何在CKeditor中使用jQuery自定義鍵盤快捷鍵?
- 6. 鍵盤快捷鍵
- 7. 鍵盤快捷鍵
- 8. Windows自定義快捷鍵
- 9. 使用自定義瀏覽器鍵盤快捷鍵
- 10. iOS應用程序上的自定義鍵盤快捷鍵
- 11. SSMS自定義鍵盤快捷鍵查詢帶(NOLOCK)
- 12. ColdFusion Builder 2自定義鍵盤快捷鍵
- 13. 在控制檯中使用自定義鍵盤快捷鍵
- 14. java中的自定義鍵盤快捷鍵
- 15. :自定義鍵盤快捷鍵不起作用?
- 16. 在Visual Studio 2013中自定義鍵盤快捷鍵
- 17. 鍵盤快捷鍵編輯器
- 18. 如何重新定義內置鍵盤快捷鍵的行爲?
- 19. 如何修改aquamacs鍵盤快捷鍵
- 20. 在VB6 IDE中重新定義(或定義)鍵盤快捷鍵?
- 21. JButton鍵盤快捷鍵
- 22. Ember鍵盤快捷鍵
- 23. TextMate的鍵盤快捷鍵?
- 24. AutoHotKey鍵盤快捷鍵
- 25. 使用鍵盤快捷鍵
- 26. 鍵盤快捷鍵表格
- 27. Emacs多鍵盤快捷鍵
- 28. 運行鍵盤快捷鍵
- 29. 鍵盤快捷鍵在MDI
- 30. 聽鍵盤快捷鍵(c#)
有沒有一個如何做到這一點的例子?我仍然是QT的noob,我無法從該網頁中找出它。他們主要討論將操作添加到菜單或工具欄。但我沒有菜單或工具欄。我想要在我的應用程序中的主窗口(唯一窗口)中工作的快捷方式。 –
@JB_User當然,我編輯了我的答案。 – Paul