Я пытаюсь настроить виджет конфигурации для виджета с редактируемой структурой, чтобы пользователь мог выбрать произвольно выбранные позиции «для заполнения 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();
Я не знаю, как предметы в этом списке упорядочены. И не знаю, как узнать, что есть что …
Мне очень трудно это делать, я откладывал это, концентрируясь на некоторых других вещах … но я достиг того времени, когда я не могу продолжать кодировать другие вещи, потому что это главная особенность моей программы
Любая помощь будет очень признателен … Спасибо.
Задача ещё не решена.