Tulon
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору monday2000 Цитата: Представьте, что Вам нужно на большом зуме прокрутить скан снизу доверху. Элементарный здравый смысл подсказывает, что скроллбары здесь вне конкуренции. | Чтобы такое представить, нужно знать, зачем это нужно. Например при ручном исправлении наклона это не нужно - там zoom in, zoom out и drag используются, не говоря уже о том, что ручное исправление наклона само по себе крайне редко нужно. Цитата: Я под этим понятием подразумеваю способность программы визуально отображать битмапы, зуммировать их при вращении мыши, прокручивать при скроллировании, сглаживать изображение, предоставлять скроллбары для прокручивания. Зуммирование - многопоточное, т.е. колёсико крутанул, а битмап потом в отдельной нити с некоторым опозданием шагами "дозуммируется" до нужного масштаба. При этом, разумеется, никакого противного моргания-мерцания и головокружения как следствие. | Слишком специализированная задача. Например высококачественный рендеринг в отдельном потоке нужен только для очень больших пиксельных размеров. В готовом виде вы такое вряд-ли найдете, но сделать все это средствами Qt - неделя работы и от силы пара тысяч строк кода. Капля в море по сравнению с 50 тысячами строк в СТ. Я даже сейчас поточнее сосчитаю, сколько строк кода ушло на это в СТ. Итак: ImageViewBase.h: 363 строки ImageViewBase.cpp: 876 строк BackgroundExecutor.h: 69 BackgroundExecutor.cpp: 163 imageproc/Transform.h: 68 imageproc/Transform.cpp: 455 Итого: 1994 строки Есть правда еще кое-какой код, который нужен только для Linux - а именно ручное обращение к XRender и шаманство с клиппингом, которое при этом необходимо. Но в общем и целом - все равно капля в море. Цитата: Возможно. Но с алгоритмами всё-таки нет такой полной безнадёги, как с графическим движком. Потом многие алгоритмы взаимозаменяемы - т.е. как-то можно "крутиться" - нет одного - берёшь другой. А вот без движка вообще никуда не попрёшь. | Пишешь свой за неделю. Не с нуля конечно, а на базе QPainter, или там скажем Cairo. Но движок-то пишется один раз, а алгоритмов надо много. Добавлено: ndch Цитата: Итак: первый баг, относящийся к нововведениям | Это вы про то, что на стадию вывода вас не пускают, а кнопка все равно активна? Или про странное отображение номера этапа? Добавлено: Я кстати разобрался, почему иконка в исполнительный файл не встраивается. Оказывается автоматическая обработка rc файлов просто не реализована в CMake для платформы MinGW. Для MSVC - есть. для MinGW - нет. Придется вручную это делать - создавать custom command, вызывать windres.exe, и все такое. Сложно все это вслепую делать - не имея доступа к винде. Буду ждать пока либо новый ноут куплю, либо пока кто-то другой это реализует. |