Название: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: slan от Февраль 24, 2012, 11:45 Добрый день. Можно ли сабж сделать? Т.е. чтобы значения менялись только стрелочками с заданным шагом setSingleStep
Название: Re: QSpinBox + запрет ввода пользователем Отправлено: kambala от Февраль 24, 2012, 13:54 попробуй унаследоваться от QSpinBox и сделать пустым keyPressEvent (или в фильтре событий для нужного объекта и события QEvent::KeyPress сразу возврашать true)
Название: Re: QSpinBox + запрет ввода пользователем Отправлено: _OLEGator_ от Февраль 24, 2012, 14:29 Код Оно? Название: Re: QSpinBox + запрет ввода пользователем Отправлено: slan от Февраль 24, 2012, 15:02 Код Оно? Название: Re: QSpinBox + запрет ввода пользователем Отправлено: Bepec от Февраль 24, 2012, 15:20 Как извращенное решение - при получении фокуса виджетом, включать grabKeyboard для формы скажем. В результате все нажатия уйдут "мимо" спинбокса. А при потере фокуса снимать releaseKeyboard.
PS извращённое даже на мой взгляд решение, но... решение ведь! update: ставим спинбоксу NoFocus. Вуаля. Тема решена. Бгг 2 минуты на решение. Нормалёк. Название: Re: QSpinBox + запрет ввода пользователем Отправлено: slan от Февраль 24, 2012, 15:23 попробуй унаследоваться от QSpinBox и сделать пустым keyPressEvent Так и сделал. Спасибо. p.s. Изначально так и хотел, просто подумал а вдруг есть какой стандартный механизм Название: Re: QSpinBox + запрет ввода пользователем Отправлено: Bepec от Февраль 24, 2012, 15:23 ;)
Название: Re: QSpinBox + запрет ввода пользователем Отправлено: slan от Февраль 24, 2012, 15:34 Как извращенное решение - при получении фокуса виджетом, включать grabKeyboard для формы скажем. В результате все нажатия уйдут "мимо" спинбокса. А при потере фокуса снимать releaseKeyboard. PS извращённое даже на мой взгляд решение, но... решение ведь! update: ставим спинбоксу NoFocus. Вуаля. Тема решена. Бгг 2 минуты на решение. Нормалёк. а ведь действительно: setFocusPolicy(Qt::NoFocus); пасиба :) Название: Re: QSpinBox + запрет ввода пользователем Отправлено: Bepec от Февраль 24, 2012, 15:35 В 1 сообщении тему поправь на "%Название_темы [РЕШЕНО]".
Чтоб другим проще было ;) Название: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: _OLEGator_ от Февраль 24, 2012, 16:52 Код
Название: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: Bepec от Февраль 25, 2012, 08:56 OLEGator - это уже Хак ;)
Название: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: twp от Февраль 25, 2012, 11:54 OLEGator - это уже Хак ;) Как раз наоборот, ибо продвинутые пользователи (которые используют по большей части клаву) передадут пару ласковых слов за такое "правильное" решение. А в решении, что предложил _OLEGator_ этого недостатка нет и можно переходить по элементам клавишей Tab и изменять значения клавишами вверх/внизНазвание: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: _OLEGator_ от Февраль 25, 2012, 12:16 to Bepec
как раз не хак, twp уже объяснил почему. Дополнительно - нельзя будет установить фокус на элемент и воспользоваться клавишами [Вверх] и [Вниз], [Page Up] и [Page Down] для увеличения и уменьшения значения. Название: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: Bepec от Февраль 26, 2012, 09:21 А есть ли уверенность в том, что это работает?
В принципе да, пользователи привыкшие к клаве будут недовольны. Меня ввели в заблуждения первые комментарии (где предлагалось тупо все клавиатурные нажатия пропускать ;) ) Название: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: _OLEGator_ от Февраль 26, 2012, 18:15 Недосмотрел... Проблема только, что обе эти функции protected.
Название: Re: QSpinBox + запрет ввода пользователем [РЕШЕНО] Отправлено: Bepec от Февраль 26, 2012, 23:14 Наши оба метода - хаки ;)
Просто мой - более простой/быстрый, но с недостатком (клава). Твой - более сложный, но без недостатков :D 1x1 |