С хорошей точки зрения UI / UX, то, что вы на самом деле хотите, это не просто запускать тот же слот, что и кнопка триггера (что является решением, предложенным в принятом ответе), но вы также хотите визуально анимировать кнопку, являющуюсянажмите, чтобы убедиться, что пользователь может четко видеть инициируемое действие.Вот то, что я использую, например, для моего «подтверждения» QPushButtons
.
// I have this function in my 'utils' module.
void bindShortcut(QAbstractButton *button, const QKeySequence &shortcut)
{
QObject::connect(new QShortcut(shortcut, button), &QShortcut::activated, [button](){ button->animateClick(); });
}
// and then I use it like this
auto *confirmButton = new QPushButton(tr("Confirm"));
connect(confirmButton, &QPushButton::clicked, ... some slot of yours to do the actual work);
bindShortcut(confirmButton, Qt::Key_Enter);
bindShortcut(confirmButton, Qt::Key_Return);
Это, я думаю, лучший ответ, если вы не используете QtDesigner.В противном случае вы можете легко установить ярлыки в конструкторе, как предлагает другой ответ.