防止Qt生成快捷方式
Prevent Qt from generating shortcuts?
我创建的QPushButton如下,没有显式快捷键(&):
testButton = new QPushButton(tr("Start"));
我可以正确地读取按钮的文本后,它的结构:
testButton.text()
返回'Start'(不带单引号)
然后我创建一个信号/插槽连接:
QObject::connect(
testButton, &QPushButton::clicked,
this, &Dialog::actionRequest
);
在Dialog::actionRequest
槽中,testButton.text()
返回'&Start',就好像在引擎盖下的"某处"创建了一个快捷方式。
如果我命名按钮'Foo',同样的现象发生,但testButton.text()
将返回'F&oo'。这是因为我已经有了一个"文件"菜单,它有一个显式的快捷方式——创建为:
fileMenu = new QMenu(tr("&File"), this);
和Alt+O可能会成为下一个"可用"的快捷键?
我不希望为我的QPushButton创建这个隐式快捷方式。这个问题的解决办法是什么?我运行的是Fedora 22(带有plasma 5),使用的是stock qt 5.5软件包。
有一个默认的QShortcut对象与菜单选项、按钮等相关联。不幸的是,没有办法直接访问和禁用他们创建后,我知道。
您可以尝试调用Qt全局函数qt_set_sequence_auto_mnemonic(false);
来动态禁用此行为,但我不确定它是否在每个平台上都可用。
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- C++ ->运算符 [] 的快捷方式
- C++结构模板变量快捷方式定义不起作用
- 用于基于成员字段或函数创建比较器的快捷方式
- Qt全局快捷方式扩展劫持快捷方式
- 在Qt Creator中应用代码更改的快捷方式是什么?
- 如何为 QT Windows 应用程序设置不同的桌面快捷方式图标和任务栏图标不同
- 触发快捷方式(QT)时的lambda表达
- 使用Ampersand字符使用Qt Designer在mac上创建快捷方式
- 如何覆盖Qt中的默认快捷方式
- 将剪切、复制、粘贴快捷方式更改为Qt 5中的自定义槽
- 系统范围的热键快捷方式(Windows/Qt):防止窗口锁定
- 最小化到停靠后恢复Qt应用程序,使用OS X上的扩展坞快捷方式
- QT - QAction::eventFilter:不明确的快捷方式重载
- 剪贴板快捷方式/热键与应用程序外的Qt绑定
- Qt创建者"override method"快捷方式?
- Qt Creator中最有用(高效)的快捷方式
- Qt -删除快捷方式-模糊的快捷方式过载
- 防止Qt生成快捷方式
- Qt eventFilter的CTRL+TAB快捷方式被进一步处理,即使返回true