【问题标题】:Prevent Qt from generating shortcuts? [duplicate]防止Qt生成快捷方式? [复制]
【发布时间】:2016-01-05 02:31:02
【问题描述】:

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

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

我可以在按钮构建后正确读取按钮的文本:

testButton.text() 返回“开始”(不带单引号)

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

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),带有库存 qt 5.5 包。

【问题讨论】:

  • 非常感谢!所以这似乎是 kde 中的一个“错误”(或者至少在我看来是一个“不需要的”功能!)

标签: c++ qt


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2021-05-28
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多