(Qt) Потеря контакта с предметами, добавленными в сцену. Не могу получить позиции

Я пытаюсь настроить виджет конфигурации для виджета с редактируемой структурой, чтобы пользователь мог выбрать произвольно выбранные позиции «для заполнения LineEdits».

Моя идея состоит в том, чтобы собрать требуемые позиции LineEdits с помощью виджета, сделанного из сцены QGraphicsScene, представления QGraphicsView и некоторых ссылок на элементы LineEdits с собственным именем: QTextItems.

Мне удалось добавить эталонные элементы на сцену, я показал вид и смог разместить элементы на нужных позициях. Проблема в том, что когда элементы добавляются на сцену, я теряю с ними контакт и не могу знать, какой элемент находится в какой позиции.
Вот небольшой пример:

scene = new QGraphicsScene(myWidgetSize_QRect);
view = new QGraphicsView(scene);
view->setAcceptDrops(true);for(int i=0, i<number_of_input_fields, i++)
{
GraphicsTextItem *item=new GraphicsTextItem();
//Configure Item
item->setFlags(QGraphicsItem::ItemIsMovable|QGraphicsItem::ItemIsSelectable);
item->setAcceptedMouseButtons(Qt::LeftButton);
item->setAcceptDrops(true);
item->setCursor(Qt::OpenHandCursor);

QString txt("");

txt = textForItem(i);//some function that defines the text.
//Suppose it have returned for some items: "Name", "Address"
item->setPos(20+20*i,20+20*i);//load the items on different positions
scene->addItem(item);
}view->show();

Что ж, выполнив похожий код, я не знаю, как вернуть позиции после их перемещения в нужное место.
Позвольте мне быть более точным, если я поместил элементы с текстом «Имя» и «Адрес» в позиции, которые я хотел, я не знаю, как получить позицию элемента «Имя».

Единственный доступ, который я имею к элементам после добавления их на сцену:

scene->items();

Я не знаю, как предметы в этом списке упорядочены. И не знаю, как узнать, что есть что …

Мне очень трудно это делать, я откладывал это, концентрируясь на некоторых других вещах … но я достиг того времени, когда я не могу продолжать кодировать другие вещи, потому что это главная особенность моей программы

Любая помощь будет очень признателен … Спасибо.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]