Используемые версии Qt: 4.7.1 и 4.8
Я храню иерархические данные в виде узлов в модели, производной от QAbstractItemModel. У меня есть QTreeView
в графическом интерфейсе приложения для отображения иерархических данных. (Для этого вопроса иерархические данные могут быть несущественными; общая проблема, с которой я столкнулся, относится к любым данным в любой модели и представлении.)
У меня есть текстовое поле (виджет QPlainTextEdit
, но это не обязательно) в графическом интерфейсе приложения, в котором отображается гиперссылка. Когда пользователь нажимает на гиперссылку, я могу перехватить это и получить URL гиперссылки. Пока все хорошо.
Когда я перехватываю эту гиперссылку, я заставлю QTreeView
перейти к определенному узлу, расширяя его родителей по мере необходимости, чтобы пользователь мог его видеть.
URL-адрес гиперссылки будет в формате, который позволяет мне узнать, что запрашивается узел, и будет содержать идентификационную информацию об этом конкретном узле. Например:
<a href="node://something">Click me to see node A</a>
Итак, вопрос в том, что может идентифицировать этот конкретный узел и может быть закодировано как текстовая строка?
Я читал о QPersistentModelIndex
. Это звучит как разумная вещь для начала. В то время, когда я форматирую гиперссылку, я определенно знаю QModelIndex
конкретного узла и могу из него построить QPersistentModelIndex
. Но я заблудился о том, как преобразовать это в строку, а затем позже преобразовать строку обратно в QModelIndex
, из которого я могу вывести конкретный узел.
Любые предложения приветствуются.