Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: при нажатой в наследнике QGraphicsScene не срабатывает mouseMoveEvent
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
hemmul
При нажатой кнопке мышки (mousePressEvent) в наследнике QGraphicsScene не срабатывает mouseMoveEvent

class MyGraphicsScene : public QGraphicsScene
{
public:
    MyGraphicsScene(QObject * parent = 0);
private:
    void mousePressEvent ( QGraphicsSceneMouseEvent * event );
    void mouseMoveEvent ( QGraphicsSceneMouseEvent * event );
    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
    QGraphicsItem *tempItem;

};



MyGraphicsScene ::MyGraphicsScene(QObject * parent ): QGraphicsScene(parent)
{
    tempItem = 0;
};

void MyGraphicsScene :: mousePressEvent ( QGraphicsSceneMouseEvent * event )
{
    tempItem = this->itemAt(event->pos());
    bool s = true;
    //последующие пять строк пробовал в разной комбинации
    if (tempItem) tempItem->setAcceptDrops(s);
    if (tempItem) tempItem->setAcceptHoverEvents (s);
    if (tempItem) tempItem->setFlag(QGraphicsItem::ItemIsSelectable);
    if (tempItem) tempItem->setFlag(QGraphicsItem::ItemIsMovable);
    QGraphicsScene::mousePressEvent(event);
};

void MyGraphicsScene :: mouseMoveEvent ( QGraphicsSceneMouseEvent * event )
{
    if (tempItem) {
            tempItem->setPos(event->pos()); // ВОТ СЮДА НАДО ПОПАСТЬ, НО ЭТО НЕ ПОЛУЧАЕТСЯ
    }
}

void MyGraphicsScene :: mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{

    tempItem = 0;
}
hemmul
Как убить эту тему ?
ViGOur
Зачем убивать, если можно просто написать ответ, мало ли кто ещё будет столкнется с этим! ;)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.