Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: adequate от Сентябрь 10, 2007, 07:57



Название: Перемещение фотографий
Отправлено: adequate от Сентябрь 10, 2007, 07:57
не могу понять в чем дело..
есть QGraphicsView в нем есть фотка.. изменяю ее размер и перемещаю при загрузке из файла.. надо чтобы при нажатии и перемещении мыши на QGraphicsView фотка перемещалась..
перехватываю ивент но фотка тупо пляшет на один пиксел.. стабильно влево-вправо-вниз-вверх.. и остается на месте..
Код:
void PhotoDst::mousePressEvent(QMouseEvent *e)
{
        if (e->buttons() ==  Qt::LeftButton)
                *p = QPoint(e->pos());
}

void PhotoDst::mouseMoveEvent(QMouseEvent *e)
{
        // move
        //char *tmp = new char[32];
        if (e->buttons() ==  Qt::LeftButton)
        {
                _p->setX(p->x() + e->x());
                _p->setY(p->y() + e->y());
                //*p = QPoint(e->pos());
                //sprintf(tmp, "%dx%d", _p->x(), _p->y());
                //QMessageBox::warning(this, "pos", tmp);
                mouseMove(_p);
        }
}

void MainWindow::slotTransDst(QPoint *p)
{
        char tmp[32];
        sprintf(tmp, "%dx%d", p->x(), p->y());
        QMessageBox::information(this, "pos", tmp);
        gvDst->translate(p->x(), p->y());
}
///////////////////////////
        connect (gvDst, SIGNAL(mouseMove(QPoint*)),
                SLOT(slotTransDst(QPoint*)));
///////////////////////////

вот еще что.. как заставить QGraphicsView вписывать фотку в рамки (чтоб отображалось без скроллбаров)?