У меня есть структура, содержащая информацию об виджете-объекте pObj и указатель на него
typedef struct {
QPointF p1;
QPointF p2;
QString name;
QWidget *pObj;
} TMyObj;
Эти структуры складываются в
QVector<TMyObj> myStructArr
Есть необходимость выводить эти структуры (и взаимодействовать с ними) через QListWidget
- то есть заполнить его значениями вектора myStructArr
и обрабатывать его события, получая связанные с ними элементы вектора.
Когда-то давно (когда я писал на Delphi) я просто заполнял QListWidget
элементами QListWidgetItem
а при клике получал номер выбранного элемента i = QListWidget::selected()
и нужный мне элемент находил в векторе: MyEl = myStructArr[i]
.
Но, мне кажется что здесь нужно немного ООП.
Например, создать классы:
- MyListWidgetItem
наследующийся от QListWidgetItem и содержащий в себе эту структуру.
- MyListWidget
наследующийся от QListWidget и добавить метод, возвращающий структуру из MyListWidgetItem
Как вообще это делается в цивилизованном мире?
Под рукой 900-страничная книга где подробно описывается сам Qt, но нет примеров проектирования приложений и решения реальных задач.