2015-10-07 2 views
1

Я создаю QPushButton следующим образом, без явного ярлыка (&):Запретить Qt генерировать ярлыки?

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

Я могу правильно прочитать текст кнопки сразу после его строительства: «Пуск»

testButton.text() возвращает (без одиночные кавычки)

Затем я создаю соединение сигнал/слот:

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

В слоте Dialog::actionRequesttestButton.text() возвращает '& Пуск', как если бы была создана ярлык «где-то», под капотом.

Если я назову кнопку «Foo», произойдет то же самое явление, но testButton.text() вернет «F & oo». Это потому, что у меня уже есть меню «Файл», который имеет явный ярлык - созданное как:

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

и, возможно, Alt + O будет следующим «доступен» ярлык?

Я не хочу, чтобы это неявное создание ярлыков для моего QPushButton. Каково решение этой проблемы? Я запускаю Fedora 22 (с плазмой 5), с запасом qt 5.5 пакетов.

+1

Большое спасибо! Поэтому, похоже, это «ошибка» в kde (или, по крайней мере, «нежелательная» функция с моей точки зрения!) – mamahuhu

ответ

0

Существует объект QShortcut по умолчанию, связанный с параметрами меню, кнопками и т. Д. К сожалению, нет способа прямого доступа и отключения их после создания, о котором я знаю.

Вы можете попытаться вызвать глобальную функцию Qt qt_set_sequence_auto_mnemonic(false);, чтобы отключить эту динамику динамически, но я не уверен, что она доступна на каждой платформе.

Смежные вопросы