Russian Qt Forum

Qt => Model-View (MV) => Тема начата: YvenTitan от Сентябрь 18, 2019, 17:27



Название: Одинаковые элементы и короткое отображение элемента в QTreeView
Отправлено: YvenTitan от Сентябрь 18, 2019, 17:27
Еще раз здравствуйте
У меня 2 вопроса:
1) Встроены ли в Qt механизмы, позволяющие сделать так, чтобы не было одинаковых детей у одного родителя в древовидной модели, полученной наследованием от QAbstractItemModel? Или перед вставкой в модель надо проверять нет ли уже элемента с таким именем?
2) Мне в дереве хочется отображать некоторые файлы. В плане интерфейса удобно, чтобы пользователь видел только имена, а в плане удобства программирования хочется, чтобы при обращении к элементу, можно было узнать полный путь файла. Есть ли механизм, показывающий часть данных, или надо в класс элемента полный путь прописывать?


Название: Re: Одинаковые элементы и короткое отображение элемента в QTreeView
Отправлено: ViTech от Сентябрь 18, 2019, 18:58
1) Встроены ли в Qt механизмы, позволяющие сделать так, чтобы не было одинаковых детей у одного родителя в древовидной модели, полученной наследованием от QAbstractItemModel? Или перед вставкой в модель надо проверять нет ли уже элемента с таким именем?

Насколько я знаю, таких механизмов в QAbstractItemModel нет. Данные для модели разработчик формирует сам, так что ему и проверять их корректность.

2) Мне в дереве хочется отображать некоторые файлы. В плане интерфейса удобно, чтобы пользователь видел только имена, а в плане удобства программирования хочется, чтобы при обращении к элементу, можно было узнать полный путь файла. Есть ли механизм, показывающий часть данных, или надо в класс элемента полный путь прописывать?

QAbstractItemView для отображения данных запрашивают их через метод QAbstractItemModel::data() с role = Qt::DisplayRole. Можно определить свою роль для данных (см. Qt::UserRole), и для этой роли через тот же QAbstractItemModel::data()  возвращать другие данные.


Название: Re: Одинаковые элементы и короткое отображение элемента в QTreeView
Отправлено: Day от Сентябрь 18, 2019, 19:04
Есть еще роль ToolTypRole. Вот она должна возвращать полное имя. По наведению мышки на элемент.


Название: Re: Одинаковые элементы и короткое отображение элемента в QTreeView
Отправлено: YvenTitan от Сентябрь 20, 2019, 10:34
Спасибо