Мне нужно реализовать простой звуковой редактор с определенной функцией обработки сигнала. Я хочу отображать информацию о звуке вертикально как большое изображение - 1024 x [большая высота]. Итак, я ищу лучший способ Qt по внедрению вертикальной прокрутки с низким потреблением процессора, похожей на прокрутку веб-браузеров.Qt прокрутка большого изображения
ответ
Необходимо создать пользовательский виджет, переопределив его paintEvent()
.
Посмотрите на this self-explanatory example о том, как создать следующий виджет.
Пользовательский виджет? Но может ли Qt дать некоторые полезные возможности прокрутки? Зачем нужен пользовательский виджет? Могу ли я использовать некоторые встроенные средства рисования в сочетании со средствами прокрутки? Что-то вроде: (1) нарисовать какое-то изображение в памяти, (2) вставить это изображение в область прокрутки? – pavelkolodin
Потому что то, что вы хотите достичь, подпадает под пользовательский виджет. Вы говорите о видимом пользовательском виджете Qt, поэтому я предлагаю вам то, что я бы выбрал. Если вы хотите расширить свой собственный виджет, чтобы иметь возможность прокрутки, вы можете наследовать свой собственный виджет из 'QAbstractScrollArea', поэтому область прокрутки и полосы прокрутки будут частью виджета. Затем вы просто поместите свое изображение поверх видимой области виджета, используя 'paintEvent()'. Довольно прямо. Конечно, если вы хотите реализовать масштабирование и другие функции, для этого потребуется дополнительная работа. –
Нормальный QScrollArea даст вам то, что вы хотите 99% времени. Но вы хотите создать растровое изображение потенциально массивного размера, и вы хотите сохранить его в ОЗУ - вы быстро исчерпаете пространство.
Возможно, вам понадобится система, в которой вы сохраняете изображение в файл, и используйте границы области прокрутки, чтобы разумно загружать содержимое из файла (и определенный размер вокруг него, чтобы сделать его гладким) - Qt не дает этого. Это вряд ли новаторский материал, поэтому поиск в Интернете «прокрутки очень больших изображений» или чего-то подобного должен дать умный результат.
Если вы задумали построить данные КК, то вы можете легко принять один из виджетов в библиотеке QWT:
Во всяком случае, посмотрите на него, это отличный источник вдохновение и код ...
- 1. прокрутка большого изображения android
- 2. Прокрутка большого изображения
- 3. Прокрутка большого стола
- 4. Qt TextEdit плавная прокрутка
- 5. Загрузка большого изображения в приложение WPF - требуется прокрутка и рисование
- 6. QT Images- Загрузка и прокрутка
- 7. Прокрутка списка меток на Qt
- 8. Прокрутка изображения по горизонтали
- 9. Android: прокрутка изображения
- 10. плавная прокрутка изображения.
- 11. CSS Прокрутка фонового изображения
- 12. iOS Прокрутка изображения
- 13. Простой прокрутка фонового изображения
- 14. Прокрутка изображения после кеширования
- 15. прокрутка изображения не работает
- 16. Ограниченная прокрутка для изображения
- 17. Страница изображения Прокрутка Transtion
- 18. Прокрутка изображения непрерывно
- 19. Прокрутка изображения слайд-шоу
- 20. Загрузка большого изображения
- 21. Обработка большого спутникового изображения
- 22. Drupal6: Загрузка большого изображения?
- 23. Обрезка большого фонового изображения
- 24. Прокрутка QGraphicsView и масштабирование изображения/обрезка
- 25. Бесконечная прокрутка qt listView в QML
- 26. Qt: выполнение действия (прокрутка) после добавления виджета
- 27. Горизонтальная прокрутка Просмотр размера изображения
- 28. прокрутка изображения с помощью UIScrollView
- 29. Прокрутка текста - одновременно отображаются изображения
- 30. Прокрутка фонового изображения для UITableView?
Как вы создаете изображение? Если это всего лишь форма сигнала сигнала, то создайте его с помощью QGraphicsScene/View, а затем вы сможете воспользоваться встроенными структурами пространственного ускорения и рендерингом OpenGL. – cmannett85
Я буду рисовать изображение во время чтения файла. это будет такой спектр, как http://lh4.ggpht.com/-crInga_olaA/RsYYBZsINOI/AAAAAAAAABo/qww0I98IBMk/data_acquisition.jpg – pavelkolodin