crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Клонирование элемента на сцене Alt+Move
ivan_ivchenko
  опции профиля:
сообщение 3.12.2011, 18:51
Сообщение #1


Студент
*

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

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




Репутация:   0  


Я хочу добавить на сцену копию выделенного элемента, если пользователь начинает его перетаскивать с зажатой кнопкой (например, Alt). Долее должно происходить перемещение только копии, а старый объект должен остаться на месте.
Я написал код:
if(mouseEvent->modifiers() == Qt::AltModifier)
{
    QList<QGraphicsItem *> itList = this->selectedItems();
    if(itList.size()==1)
    {
        DiagramElement *de = (DiagramElement*)itList[0];
        DiagramElement *declone = de->clone();

        de->setSelected(false);

        declone->setPos(mouseEvent->scenePos());
        this->addItem(declone);

        declone->setSelected(true);
    }
    QGraphicsScene::mouseMoveEvent(mouseEvent);
}

Код находится в классе-наследнике от QGraphicsScene. DiagramElement - это класс-наследник QGraphicsItem.
Сейчас после вставки нового объекта старый остается выделенным и происходит перемещение обоих.
Нужно как-то сделать, чтобы перемещался только новый.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 30.11.2024, 5:49