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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: копирование выделенных пикселей  (Прочитано 3312 раз)
upsny
Гость
« : Декабрь 16, 2012, 11:29 »

здравствуйте. помогите пожалуйста разобраться с выделением области изображения. мне нужно запомнить выделенную область, и желательно чтобы эта самая выделенная область была изображена(рамка). выделял я с помощью rubberband, и не пойму, сохранилась ли область или нет...
вот кусок кода:


QImage src;
QImage dst;

QPoint origin;
QRubberBand *rubberBand;

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    origin = event->pos();
    rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
    rubberBand->setGeometry(QRect(origin, QSize()));
    rubberBand->show();

    mySelection * sel1 = new mySelection ();
    sel1->setPointFirst(origin);
    cout << sel1->first.x();
}

void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    rubberBand->setGeometry(QRect(origin, event->pos()).normalized());
}

void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
    rubberBand->hide();
}


и добавленный хедер

class QPoint;

class mySelection
{
public:
    QPoint first;
    QPoint second;

    void setPointFirst (QPoint p);

    void setPointSecond (QPoint p);
};

void mySelection::setPointFirst(QPoint p)
{
    this->first = p;
}

void mySelection::setPointSecond(QPoint p)
{
    this->second = p;
}
« Последнее редактирование: Декабрь 16, 2012, 11:30 от upsny » Записан
mutineer
Гость
« Ответ #1 : Декабрь 16, 2012, 11:42 »

Мда, память у тебя течет ручьем...

Так а куда ты хочешь эту самую область сохранить? И в какой момент ты ждешь что она сохранится?
Записан
upsny
Гость
« Ответ #2 : Декабрь 16, 2012, 11:53 »

после собственно выделения. т.е. выделяю область и мне необходимо эту область перенести на другой фрагмент изображения. как-то так.
а что с памятью не так? я что-то нахимичил?
Записан
mutineer
Гость
« Ответ #3 : Декабрь 16, 2012, 12:06 »

Ты создаешь QRubberBand и mySelection при каждом клике, но никогда не удаляешь, вот и течет память.

Ну так после отпускания мыши геометрия выделенной области лежит в rubberBand. В чем проблема?
Записан
upsny
Гость
« Ответ #4 : Декабрь 16, 2012, 12:15 »

понял. исправлюсь, спасибо.
то есть после отпускания мыши эта самая геометрия сохраняется? отлично. спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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