Russian Qt Forum
Ноябрь 25, 2024, 18:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicsScene / mouseEvent / Selected  (Прочитано 4649 раз)
lenina15i25
Гость
« : Июль 15, 2017, 16:04 »

Добрый день. Существует связанный QGraphicsScene с QGraphicsView. Я перегрузил событие мыши, чтобы рисовать на сцене. Но я не понимаю, как вернуть указатель на выделенный нарисованный объект. По умолчанию двойным щелчком мыши выделяется объект, я устанавливаю флаг: line-> setFlag (QGraphicsItem :: ItemIsSelectable).
Объект: QGraphicsLineItem * line = new QGraphicsLineItem .
Помогите вернуть указатель на выбранный объект,что бы можно было изменить его и просмотреть координаты линии (начало и конец).
« Последнее редактирование: Июль 15, 2017, 18:06 от lenina15i25 » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Июль 15, 2017, 20:13 »

QGraphicsScene::selectedItems()
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
lenina15i25
Гость
« Ответ #2 : Июль 15, 2017, 21:30 »

QGraphicsScene::selectedItems()
Пробовал, даже с учетом, того, что возвращает адрес на QList;

void MyScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
    QList <QGraphicsItem*> it;
    it = this->QGraphicsScene::selectedItems();
    qDebug() << it << endl;
    qDebug() << "Line" << endl;
}
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Июль 16, 2017, 01:54 »

Код:
auto itemlist = selectedItems();
if (itemlist.count() > 0)
{
  QGraphicsLineItem * line = dynamic_cast<QGraphicsLineItem*>(itemList.first());
  if (line != NULL)
  {
  ... // line is here
  }
}
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.226 секунд. Запросов: 23.