如何在 KDE 上的 Qt 应用程序中禁用自动助记符?

Posted

技术标签:

【中文标题】如何在 KDE 上的 Qt 应用程序中禁用自动助记符?【英文标题】:How to disable automatic mnemonics in a Qt application on KDE? 【发布时间】:2015-12-17 17:39:48 【问题描述】:

当我在设计器中添加QPushButton 并通过以下方式检查其文本时,在 KDE 上的任何 Qt 应用程序中:

void MainWindow::on_pushButton_clicked()

    qDebug()<<ui->pushButton->text();

输出前面是&amp;

&按钮

此行为在 Windows 上不存在。似乎 KDE 上的 Qt 应用程序会自动为所有按钮添加快捷方式,这对我来说并不理想。我应该注意,与号不是由设计者创建的,您在.ui 文件中看不到它们。实际上,当按钮添加到小部件时,&amp; 会放置在其文本中的某处。

是否可以禁用 Qt 应用程序的自动助记符?

【问题讨论】:

这个问题不清楚。 Qt Designer 是否添加了这些?它们是否存在于 .ui 文件中?它们是由 Qt 本身在运行时添加的吗?你真的需要说清楚。 @KubaOber & 符号不是由设计器创建的,您在 .ui 中看不到它们。似乎当按钮添加到小部件时,&amp; 被放置在其文本中的某个位置。也许这就是 KDE 的行为。 请在问题中做出这样的澄清。 也经历过这个问题......它发生在 Plasma 5 和 qt 5.5 上。 kde 4 和 qt 5.5 没问题。 【参考方案1】:

KDEPlatformTheme 插件负责它。

一种解决方法是添加

[Development]
AutoCheckAccelerators=false

~/.config/kdeglobals,它会阻止 KDE 自动添加加速器。

相关错误:https://bugs.kde.org/show_bug.cgi?id=337491

【讨论】:

以上是关于如何在 KDE 上的 Qt 应用程序中禁用自动助记符?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用助记符?

如何在 Qt (gcc 64bit) 中禁用自动初始化局部变量

在 Qt 中禁用小部件上的阻塞信号

在 KDE 中禁用全局 Ctrl-Alt-L 热键

相当于 KDE 上的 pyrcc4

Qt 应用程序是不是需要 KDE?