У меня есть QListView
, который устанавливает пользовательский QAbstractListModel
в качестве модели. Модель загружает данные из базы данных и помещает их в структуру данных QList<QHash<QString, QString> > dataList
. Каждый QHash<QString, QString> data
содержит такие вещи, как data["id"]
и data["name"]
. Значение data["name"]
передается в QListView
с помощью метода data()
модели. Теперь я хочу получить доступ к QHash<QString, QString>
, принадлежащему выбранному элементу, из другого виджета при нажатии элемента в QListView
.
Так что-то вроде этого ...
connect(view, SIGNAL(clicked(...)), someOtherWidget, SLOT(foo(...))
А в foo () мы могли бы сделать, например ...
void someOtherWidget::foo(const QHash<QString, QString>& customData) { QMessageBox::information(this, "User ID", customData["id"]; }
И в окне сообщения будет отображаться id элемента.