Russian Qt Forum
Сентябрь 30, 2024, 14:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSpinBox - как ловить значение при нажатии Enter?  (Прочитано 3912 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Март 17, 2009, 15:53 »

Здравствуйте!


Столкнулся с такой проблемой. Есть QSpinBox, у него есть сигнал valueChanged(). Этот сигнал вызывается при любом изменении значения в поле ввода. А это значит, что если пользователь  вводит с клавиатуры, например, двузначное число, то сигнал будет сгенерирован два раза (на первую цифру, и на вторую).

А нужно, чтобы сигнал генерировался только когда пользователь ввел всё число, и нажал Enter (и генерировался при нажатии стрелок вверх-вниз, само собой).

Как можно сделать таким поведение QSpinBox?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Rcus
Гость
« Ответ #1 : Март 17, 2009, 16:01 »

void QAbstractSpinBox::editingFinished ()   [signal]
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Март 17, 2009, 16:51 »

Ну, этот сигнал не эмитится, когда перетыкаются стрелками значение.

Получается ситуация - если мы используем только editingFinished(), то реакция QSpinBox идет только на ввод с клавиатуры при нажатии Enter.

Чтобы работал ввод при нажатии стрелок мышкой, приходится использовать valueChanged(). А этот сигнал эмитится и при вводе числа с клавиатуры на каждую введенную цифру.

А как сделать, чтоб работало более ожидаемо, как это написано в начале темы?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 22.