Как отключить скроллинг в QScrollArea при использовании колеса мыши |
Здравствуйте, гость ( Вход | Регистрация )
Как отключить скроллинг в QScrollArea при использовании колеса мыши |
Алексей |
30.8.2010, 18:18
Сообщение
#1
|
Студент Группа: Участник Сообщений: 37 Регистрация: 29.8.2010 Пользователь №: 1988 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как отключить скроллинг в QScrollArea который возникает при использовании колеса мыши?
|
|
|
Sokoloff |
30.8.2010, 18:29
Сообщение
#2
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Как отключить скроллинг в QScrollArea который возникает при использовании колеса мыши? Перекрыть ScrollArea::wheelEvent http://doc.crossplatform.ru/qt/4.6.x/qabst...html#wheelEvent и для события дернуть ignore()
|
|
|
Алексей |
30.8.2010, 18:52
Сообщение
#3
|
Студент Группа: Участник Сообщений: 37 Регистрация: 29.8.2010 Пользователь №: 1988 Спасибо сказали: 0 раз(а) Репутация: 0 |
а на с++ только через фильтр?
|
|
|
ufna |
30.8.2010, 18:59
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
а причем здесь сипипи?
|
|
|
Алексей |
30.8.2010, 19:08
Сообщение
#5
|
Студент Группа: Участник Сообщений: 37 Регистрация: 29.8.2010 Пользователь №: 1988 Спасибо сказали: 0 раз(а) Репутация: 0 |
пример выше на питоне - мне не понятно что он демонстрирует, поэтому уточняю про си, чтоб потом ещё раз не переспрашивать, а так конечно вопрос: только через фильтр можно сделать?
|
|
|
ufna |
30.8.2010, 20:43
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5 |
думаю что да, но installEventFilter() просто в использовании, можно класс не переопределять.
|
|
|
Litkevich Yuriy |
30.8.2010, 22:11
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Sokoloff |
30.8.2010, 23:40
Сообщение
#8
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
пример выше на питоне - мне не понятно что он демонстрирует, поэтому уточняю про си, чтоб потом ещё раз не переспрашивать, а так конечно вопрос: только через фильтр можно сделать? Что то с сайтом были проблемы, поэтому отвечаю только сейчас. Пример был на питоне, потому что у меня был в это время открыт питоновский проект. А так, от языка здесь ничего не зависит, это чисто Qt-шная фишка. На C++ это будет выглядеть так:
Где YourClass - это твой наследник от ScrollArea. В этом же методе ты можешь реализовать свою обработку колеса мыши. Сообщение отредактировал Sokoloff - 30.8.2010, 23:46 |
|
|
Алексей |
2.9.2010, 17:16
Сообщение
#9
|
Студент Группа: Участник Сообщений: 37 Регистрация: 29.8.2010 Пользователь №: 1988 Спасибо сказали: 0 раз(а) Репутация: 0 |
думаю что да, но installEventFilter() просто в использовании, можно класс не переопределять В конструкторе устанавливаю фильтры:
в фильтре:
Но прокрутка всё равно не исчезает пробовал даже на Qlabel внутри scrollArea добавлять фильтр - всё равно не помогает. Что то с сайтом были проблемы, поэтому отвечаю только сейчас. У меня тоже с сайтом были проблемы, так что всё норм. Где YourClass - это твой наследник от ScrollArea. Не хотелось бы делать наследника, так как для компоновки диалога использую дизайнер, а для того чтобы созданный виджет корректно отображался в нём нужно создавать плагин для дизайнера, что пока ещё в процессе освоения. |
|
|
Sokoloff |
2.9.2010, 17:32
Сообщение
#10
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Не хотелось бы делать наследника, так как для компоновки диалога использую дизайнер, а для того чтобы созданный виджет корректно отображался в нём нужно создавать плагин для дизайнера, что пока ещё в процессе освоения. А вот и не надо, в дизайнере есть обалденная вещь "Promoting" (в русском переводе "Преобразовать в..."). Прям в дизайнере указываешь, что вместо QScrollArea, надо использовать твой класс из такого то заголовочного файла. http://doc.crossplatform.ru/qt/4.6.x/desig...om-widgets.html Очень удобно, и структурировано, логика относящаяся к определенному виджету находится именно в его классе, а не где-то еще. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 13:41 |