Получение строки из QGraphicsSimpleTextItem из QGraphicsItem foreach l oop? - PullRequest
2 голосов
/ 02 мая 2020

Я создаю систему аннотаций изображений, используя элементы qrect и Simple text.

Я пытаюсь сохранить строковые значения из элементов QGraphicssimpletext в файле JSON, чтобы сохранить и загрузить поля аннотаций. Прямоугольники работают нормально, но я не могу понять, как получить строковое значение. Это - foreach, который я пытаюсь выполнить для каждого элемента oop, и поскольку текстовые элементы являются дочерними элементами прямоугольников, положение не имеет значения.

foreach(QGraphicsItem* item, items())
{
    arrayPosX.push_back(item->x());
    arrayHeight.push_back(item->boundingRect().height());
    arrayWidth.push_back(item->boundingRect().width());
    arrayPosY.push_back(item->y());
    arrayAnnotation.push_back(item->?);
}

И простой текст, и прямоугольные элементы добавленный в сцену с использованием

itemToDraw = new QGraphicsRectItem;
this->addItem(itemToDraw);
simpleTextToDraw = new QGraphicsSimpleTextItem;
this->addItem(simpleTextToDraw);

Я просто хотел бы знать, как я могу получить строковые значения из простого текстового элемента, чтобы можно было сохранять и загружать как строки, так и блоки, а не только блоки, текущие Система может сделать.

1 Ответ

2 голосов
/ 02 мая 2020

Вы должны привести и проверить, что указатель не является нулевым:

// ...
arrayPosY.push_back(item->y());
if(QGraphicsSimpleTextItem* text_item = qgraphicsitem_cast<QGraphicsSimpleTextItem *>(item)){
    arrayAnnotation.push_back(text_item->text());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...