防止Qt生成快捷方式?

时间:2015-10-07 18:02:53

标签: c++ qt

我正在创建一个QPushButton,如下所示,没有明确的快捷方式(&):

testButton = new QPushButton(tr("Start"));

我可以在构建完成后正确阅读按钮的文字:

testButton.text()返回'开始' (没有单引号)

然后我创建一个信号/插槽连接:

QObject::connect( testButton, &QPushButton::clicked, this, &Dialog::actionRequest );

Dialog::actionRequest广告位中,testButton.text()返回&#39;&amp; Start&#39;,就像创建了一个快捷方式&#34;某处&#34;,在引擎盖下。< / p>

如果我将按钮命名为“Foo”,则会出现相同的现象,但testButton.text()会返回“F&amp; oo&#39;”。那是因为我已经有一个&#34;文件&#34;菜单,具有明确的快捷方式 - 创建为:

fileMenu = new QMenu(tr("&File"), this);

并且,可能,Alt + O将是下一个&#34;可用&#34;快捷键?

我不想为我的QPushButton创建隐式快捷方式。这个问题的解决方案是什么?我正在运行Fedora 22(使用等离子5),库存qt 5.5包。

1 个答案:

答案 0 :(得分:0)

有一个默认的QShortcut对象与菜单选项,按钮等相关联。不幸的是,在我知道的创建之后,无法直接访问和禁用它们。

您可以尝试调用Qt全局函数qt_set_sequence_auto_mnemonic(false);来动态禁用此行为,但我不确定它是否可在每个平台上使用。