crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> при нажатой в наследнике QGraphicsScene не срабатывает mouseMoveEvent
hemmul
  опции профиля:
сообщение 9.3.2012, 11:13
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 9.3.2012
Пользователь №: 3254

Спасибо сказали: 0 раз(а)




Репутация:   0  


При нажатой кнопке мышки (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
  опции профиля:
сообщение 9.3.2012, 13:25
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 9.3.2012
Пользователь №: 3254

Спасибо сказали: 0 раз(а)




Репутация:   0  


Как убить эту тему ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.3.2012, 11:40
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Зачем убивать, если можно просто написать ответ, мало ли кто ещё будет столкнется с этим! ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.2.2025, 19:57