How to disable automatic mnemonics in a Qt applica

2020-02-01 04:27发布

问题:

In any Qt application on KDE when I add a QPushButton in designer and check it's text by:

void MainWindow::on_pushButton_clicked()
{
    qDebug()<<ui->pushButton->text();
}

The output is preceded by an & :

&PushButton

This behavior does not exist on Windows. It seems that Qt applications on KDE automatically add shortcuts to all push buttons, which is not desired for me. I should note that the ampersands are not created by designer and you can not see them in the.ui file. Actually when the button is added to a widget, an & is placed somewhere in it's text.

Is it possible to disable automatic mnemonics of a Qt application in anyway?

回答1:

KDEPlatformTheme plugin responsible for it.

A workaround is to add

[Development]
AutoCheckAccelerators=false

to ~/.config/kdeglobals, which prevents KDE from automatically adding accelerators.

Related bug: https://bugs.kde.org/show_bug.cgi?id=337491