Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: upsny от Декабрь 16, 2012, 11:29



Название: копирование выделенных пикселей
Отправлено: 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;
}


Название: Re: копирование выделенных пикселей
Отправлено: mutineer от Декабрь 16, 2012, 11:42
Мда, память у тебя течет ручьем...

Так а куда ты хочешь эту самую область сохранить? И в какой момент ты ждешь что она сохранится?


Название: Re: копирование выделенных пикселей
Отправлено: upsny от Декабрь 16, 2012, 11:53
после собственно выделения. т.е. выделяю область и мне необходимо эту область перенести на другой фрагмент изображения. как-то так.
а что с памятью не так? я что-то нахимичил?


Название: Re: копирование выделенных пикселей
Отправлено: mutineer от Декабрь 16, 2012, 12:06
Ты создаешь QRubberBand и mySelection при каждом клике, но никогда не удаляешь, вот и течет память.

Ну так после отпускания мыши геометрия выделенной области лежит в rubberBand. В чем проблема?


Название: Re: копирование выделенных пикселей
Отправлено: upsny от Декабрь 16, 2012, 12:15
понял. исправлюсь, спасибо.
то есть после отпускания мыши эта самая геометрия сохраняется? отлично. спасибо