Qt отключить QShortcut для кнопки, когда кнопка отключена - PullRequest
1 голос
/ 09 декабря 2011

Я новичок в QT. Я использовал QShortcuts для привязки клавиш к кнопкам.

QShortcut *sb_0 = new QShortcut(QKeySequence(Qt::Key_0), this);
connect(sb_0, SIGNAL(activated()), ui.b_0, SIGNAL(clicked()));

Однако, когда b_0 отключен, ярлык все еще работает.

ui.b_0->setEnabled(FALSE);

Хотелось бы как-то отключить ярлык при отключении кнопки. Я думаю, что я мог бы отключить QShortcut от кнопки QPush; однако, это не похоже на лучшую идею.

Кроме того, мне интересно, было бы возможно иметь его так, чтобы при нажатии клавиши «0» кнопка опускалась (нажималась), а затем, когда она отпущена, кнопка возвращается к нормальному. Таким образом, нажатие «0» похоже на нажатие левой кнопки мыши на b_0.

Если на этот вопрос уже был дан ответ (я не нашел ответа), пожалуйста, сообщите мне.

Спасибо.

1 Ответ

3 голосов
/ 09 декабря 2011

Почему бы вам просто не вызвать setShortcut на QPushButton?

void  setShortcut ( const QKeySequence & key )

Это предоставляется для класса QAbstractButton , поэтому, возможно, это не самая очевидная вещь, которую можно найти в документации.

 ui.b_0->setShortcut(QKeySequence(Qt::Key_0));

Это должно сработать. Кнопка уже обрабатывает то, что должно произойти, если кнопка не активирована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...