Russian Qt Forum
Ноябрь 24, 2024, 02:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Редактируемый прямоугольник выделения  (Прочитано 3534 раз)
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« : Апрель 03, 2017, 16:09 »

Привет. Есть картинка, нужно её кропнуть как хочет пользователь. Самое очевидное - мышью выделить участок картинки, чтобы потом это выделение можно было растягивать, ужимать и двигать. Как в XnView. Какие есть готовые решения для этого, или велосипедить своё? Сразу скажу, что QRubberBand - это не решение, т.к. это просто закрашенный виджет безо всякой функциональности такого выделения.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Апрель 03, 2017, 16:15 »

Когда-то давно делал для стандратного скриншотера из примеров Qt минимальную поддержку выделения: https://github.com/gil9red/ScreenShot
Записан

mitrich
Гость
« Ответ #2 : Апрель 06, 2017, 13:45 »

Я вот из одной своей штуки решил выдрать и оформить в виде самостоятельного виджета по аналогии с QRubberBand.

https://bitbucket.org/mitrich_k/selectionresizer

Используется следующим образом:
Код
C++ (Qt)
//создаем, настраиваем
resizer = new SelectionResizer(this);
resizer->setMovable(true);
resizer->setActiveBorderPen(QPen(Qt::red));
//коннектим к слоту, в котором будем обновлять геометрию объекта
connect(resizer, SIGNAL(selectionChanged(QRect)), SLOT(onSelectionChanged(QRect)));
 
//....
 
//Когда надо выделить объект, вызываем
resizer->setSelection(x, y, w, h);
resizer->show();
 
//когда закончили
resizer->hide();
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.091 секунд. Запросов: 22.