swa*_*log 5 c++ user-interface qt qt4 mnemonics
我在QMenu中使用QActions,这是典型的
| &New file Ctrl+N |
| &Open file Ctrl+O |
Run Code Online (Sandbox Code Playgroud)
当菜单打开时,它可以获得简单的N(对于新文件)和O(对于打开文件)的上下文快捷方式.
我想做一些类似的事情来列出最近的文件,即:
| [A recent file] Ctrl+1 |
| [Another recent file] Ctrl+2 |
... etc
Run Code Online (Sandbox Code Playgroud)
将助记符/上下文快捷方式设置为相应的1和2,而不必在文本字段中包含此数字,这将是很好的:
| &1. [A recent file] Ctrl+1 |
| &2. [Another recent file] Ctrl+2 |
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何做到这一点,或者可以指出我找到方向,我会很高兴.我查看了一些文档,我找不到很多提及使用&符号以及为QActions设置助记符快捷方式的等效方法.
谢谢.
Ps:Qt-4.7.4-rh6-x86_64,C++
您可以创建仅在菜单上下文中有效的快捷方式:
QAction * recentFileAction = new QAction( tr("A recent file"), this );
recentFileAction->setShortcut( QKeySequence( tr("Ctrl+1") ) );
QMenu * tools = menuBar()->addMenu( tr("&Tools") );
// Add a shortcut valid only when the tools menu has focus
QShortcut * recentFileShortcut = new QShortcut( QKeySequence( tr("1") ), tools );
recentFileShortcut->setContext( Qt::WidgetShortcut );
connect( recentFileShortcut, SIGNAL(activated()),
recentFileAction, SLOT(trigger()));
Run Code Online (Sandbox Code Playgroud)
您可能需要设置菜单的焦点策略,Qt::StrongFocus以便它接受键盘输入。
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |