Ввод данных в графический интерфейс Qt с клавиатуры: непреднамеренные побочные эффекты при нажатии Enter - PullRequest
1 голос
/ 13 января 2012

Я написал графический интерфейс Qt, который содержит некоторые QSpinBoxes и QDoubleSpinBoxes, среди прочего. Все работает, как задумано, за исключением одной вещи: когда я вводю число в QSpinBoxes и заканчиваю ввод нажатием клавиши «Ввод», это также активирует первый виджет в порядке табуляции: т.е. вместо простого изменения значения моего Вращая окно, я также нажимаю кнопку в верхней части моего диалога - что я не хочу. Как я могу это исправить? (Обратите внимание, что мне нужно нажать Enter, чтобы принять новое значение, так как отслеживание клавиатуры спин-боксов отключено.)

РЕДАКТИРОВАТЬ: В случае, если кто-то сталкивается с аналогичной проблемой: http://developer.qt.nokia.com/doc/qt-4.8/eventsandfilters.html

1 Ответ

3 голосов
/ 13 января 2012

Я думаю, что может произойти, это то, что кнопка по умолчанию из QDialog нажимается при нажатии Enter.

Если вы создаете подклассы QDialog самостоятельно, тогда один из ваших QPushButton s имеет свойство по умолчанию , установленное в значение true.Если вы вернете это значение в false, кнопка не будет реагировать на клавишу Enter, если она не в фокусе.Недостатком здесь является то, что ваш диалог не может быть закрыт, нажав Enter, если вы хотите придерживаться значений по умолчанию, например.

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