![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Анна |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Суть проблемы:
Есть очень длинная форма для заполнения с QSpinBox, с QComboBox и т.п. Поскольку окно ограничено в размерах, то форма размещена на QScrollArea. При кручении колёсика и прокрутке формы курсор мыши может оказаться на QSpinBox или QComboBox, и тогда их значения резко меняются. Хочется, чтобы прокрутку формы можно было осуществлять только таская бегунок скроллера мышкой. Пожалуйста, помогите реализовать. А то просто зашиваюсь по времени. Если есть возможность "прихлопнуть" возможность изменения значений QSpinBox или QComboBox при вращении колёсика, такой вариант тоже сгодится. Может, такой вариант даже больше подойдёт. |
|
|
![]() |
Анна |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
накидай в новом проекте пример, где баги воспроизводятся. Тогда можно будет глянуть, что там Я скомпелила твой код. Прокручивается до тех пор, пока курсор мыши не наскочет на спинбокс или комбобокс. Если курсор мыши изначально находится на боксе (но у бокса фокуса нет), то кручение колеса не обрабатывается. А что касается изменений, то пришлось убрать инициализацию scrollArea =0 И цикл for(auto* child:list) заменила на обычный for(int i=0; i < list.count();i++) и в теле child на list.at(i). Честно говоря, я не совсем понимаю, почему боксы, вообще, хватают фокус, когда крутится колесо, если у них установлен StrongFocus. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 8.5.2025, 15:56 |