Russian Qt Forum
Ноябрь 21, 2024, 23:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Одинаковые элементы и короткое отображение элемента в QTreeView  (Прочитано 8901 раз)
YvenTitan
Самовар
**
Offline Offline

Сообщений: 174


Просмотр профиля
« : Сентябрь 18, 2019, 17:27 »

Еще раз здравствуйте
У меня 2 вопроса:
1) Встроены ли в Qt механизмы, позволяющие сделать так, чтобы не было одинаковых детей у одного родителя в древовидной модели, полученной наследованием от QAbstractItemModel? Или перед вставкой в модель надо проверять нет ли уже элемента с таким именем?
2) Мне в дереве хочется отображать некоторые файлы. В плане интерфейса удобно, чтобы пользователь видел только имена, а в плане удобства программирования хочется, чтобы при обращении к элементу, можно было узнать полный путь файла. Есть ли механизм, показывающий часть данных, или надо в класс элемента полный путь прописывать?
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #1 : Сентябрь 18, 2019, 18:58 »

1) Встроены ли в Qt механизмы, позволяющие сделать так, чтобы не было одинаковых детей у одного родителя в древовидной модели, полученной наследованием от QAbstractItemModel? Или перед вставкой в модель надо проверять нет ли уже элемента с таким именем?

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

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

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

Пока сам не сделаешь...
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #2 : Сентябрь 18, 2019, 19:04 »

Есть еще роль ToolTypRole. Вот она должна возвращать полное имя. По наведению мышки на элемент.
Записан
YvenTitan
Самовар
**
Offline Offline

Сообщений: 174


Просмотр профиля
« Ответ #3 : Сентябрь 20, 2019, 10:34 »

Спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 22.