![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
DOGG |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте.
Нужен ваш совет! Мне нужен был виджет для обрезки фотографий. Необходимый функционал: - выделение области на исходном изображении для обрезки; - изменение области выделения мышкой; - возможность зафиксировать пропорции области выделения; - затемнение исходного изображения за областью выделения. Вот что получилось: ![]() И теперь возник вопрос, а может быть я зря тут велик изобретаю и есть что-нибудь готовое!? Если нет такого на Qt, то тогда второй - правильным путем ли я пошел для реализации этой задачи? А сделал я так: 1. QLabel с исходным фото 2. Сверху QLabel такого же размера с полупрозрачной заливкой для затемнения 3. Сверху наследник QLabel, в котором переопределены события движения/нажатия/отпускания мыши для ручного изменения размера, ну и рисуется он просто - грабит часть самого нижнего QLabel над которой он находится и добавляет квадратики по бокам и линии. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
В принципе всё можно было одним виджетом реализовать, но, цель достигнута, работает.
|
|
|
DOGG |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Я бы использовал наследник QWidget, а там в paintEvent всё сделал.
|
|
|
ruzik |
![]()
Сообщение
#5
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Предложу еще такую вещь как QGraphicsView
И еще посмотрите тут http://qt-apps.org/content/show.php/Screen...?content=111648 В этой программе есть похожий функционал |
|
|
DOGG |
![]()
Сообщение
#6
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Предложу еще такую вещь как QGraphicsView QGraphicsView я смотрел, решил от него отказаться по нескольким причинам: во-первых получается слишком наворочено: сцена, на ней объекты. Слишком много... по-хорошему тут нужен-то один прямоугольник да картинка, правильно Юрий предложил сделать на одном виджете. а во-вторых думаю, что все-таки этот виджет для задач другого класса - различных схем, диаграм и т.п. (м.б. я и ошибаюсь...) И еще посмотрите тут http://qt-apps.org/content/show.php/Screen...?content=111648 В этой программе есть похожий функционал Благодарю, посмотрим что там. |
|
|
Гость_ROXX_* |
![]()
Сообщение
#7
|
Гости ![]() |
Здравствуйте. Нужен ваш совет! Мне нужен был виджет для обрезки фотографий. Необходимый функционал: - выделение области на исходном изображении для обрезки; - изменение области выделения мышкой; - возможность зафиксировать пропорции области выделения; - затемнение исходного изображения за областью выделения. Вот что получилось: ![]() И теперь возник вопрос, а может быть я зря тут велик изобретаю и есть что-нибудь готовое!? Если нет такого на Qt, то тогда второй - правильным путем ли я пошел для реализации этой задачи? А сделал я так: 1. QLabel с исходным фото 2. Сверху QLabel такого же размера с полупрозрачной заливкой для затемнения 3. Сверху наследник QLabel, в котором переопределены события движения/нажатия/отпускания мыши для ручного изменения размера, ну и рисуется он просто - грабит часть самого нижнего QLabel над которой он находится и добавляет квадратики по бокам и линии. См. здесь: https://github.com/gavrus/SampleMaker |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 18.2.2025, 17:11 |