Здравствуйте, гость ( Вход | Регистрация )
Sokoloff | Дата 2.9.2010, 18:24 |
ПС но почему фильтр не работает тоже хотелось бы понять
Так ты же и не фильтруешь ничего. Я не знаю надо ли тут дергать ignore, но документация говорит следующее: Цитата In your reimplementation of this function, if you want to filter the event out, i.e. stop it being handled further, return true; otherwise return false. т.е. тебе надо возвращать true. |
|
Алексей | Дата 2.9.2010, 17:51 |
Очень удобно, и структурировано, логика относящаяся к определенному виджету находится именно в его классе, а не где-то еще. спасибо способ подойдёт ПС но почему фильтр не работает тоже хотелось бы понять |
|
Sokoloff | Дата 2.9.2010, 17:32 |
Не хотелось бы делать наследника, так как для компоновки диалога использую дизайнер, а для того чтобы созданный виджет корректно отображался в нём нужно создавать плагин для дизайнера, что пока ещё в процессе освоения. А вот и не надо, в дизайнере есть обалденная вещь "Promoting" (в русском переводе "Преобразовать в..."). Прям в дизайнере указываешь, что вместо QScrollArea, надо использовать твой класс из такого то заголовочного файла. http://doc.crossplatform.ru/qt/4.6.x/desig...om-widgets.html Очень удобно, и структурировано, логика относящаяся к определенному виджету находится именно в его классе, а не где-то еще. |
|
Алексей | Дата 2.9.2010, 17:16 |
думаю что да, но installEventFilter() просто в использовании, можно класс не переопределять В конструкторе устанавливаю фильтры:
в фильтре:
Но прокрутка всё равно не исчезает пробовал даже на Qlabel внутри scrollArea добавлять фильтр - всё равно не помогает. Что то с сайтом были проблемы, поэтому отвечаю только сейчас. У меня тоже с сайтом были проблемы, так что всё норм. Где YourClass - это твой наследник от ScrollArea. Не хотелось бы делать наследника, так как для компоновки диалога использую дизайнер, а для того чтобы созданный виджет корректно отображался в нём нужно создавать плагин для дизайнера, что пока ещё в процессе освоения. |
|
Sokoloff | Дата 30.8.2010, 23:40 |
пример выше на питоне - мне не понятно что он демонстрирует, поэтому уточняю про си, чтоб потом ещё раз не переспрашивать, а так конечно вопрос: только через фильтр можно сделать? Что то с сайтом были проблемы, поэтому отвечаю только сейчас. Пример был на питоне, потому что у меня был в это время открыт питоновский проект. А так, от языка здесь ничего не зависит, это чисто Qt-шная фишка. На C++ это будет выглядеть так:
Где YourClass - это твой наследник от ScrollArea. В этом же методе ты можешь реализовать свою обработку колеса мыши. |
|
Litkevich Yuriy | Дата 30.8.2010, 22:11 |
пример выше на питоне - мне не понятно что он демонстрирует, поэтому уточняю про си Запись в питоне соответсвует записи в Си++:
|
|
ufna | Дата 30.8.2010, 20:43 |
думаю что да, но installEventFilter() просто в использовании, можно класс не переопределять. | |
Алексей | Дата 30.8.2010, 19:08 |
пример выше на питоне - мне не понятно что он демонстрирует, поэтому уточняю про си, чтоб потом ещё раз не переспрашивать, а так конечно вопрос: только через фильтр можно сделать? | |
ufna | Дата 30.8.2010, 18:59 |
а причем здесь сипипи? | |
Алексей | Дата 30.8.2010, 18:52 |
а на с++ только через фильтр? | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 19:43 |