Установить иконку в строке в TreeView в QML
Добрый день!
За отсутствием в QML нормального диалога открытия файла для Android написал его сам.
Только столкнулся с тем, что не могу установить иконку в строке в TreeView в зависимости от того отображается в строке файл или папка.
Использую TreeView с моделью FolderListModel.
Сейчас это имеет такой вид:
А должна вместо иконки папки в последней строке отображаться иконка файла (ptc_licFile.dat - файл).
Код:
TreeView { id: treeView anchors.fill: parent clip: true headerVisible: false model: FolderListModel { id: fileSystemModel } TableViewColumn { width: 38 delegate: Image { fillMode: Image.PreserveAspectFit source: if (fileSystemModel.isFolder(treeView.currentIndex)) { // Определить это папка или файл return "qrc:/pict/folder.png" } else { return "qrc:/pict/file.png" } } } TableViewColumn { role: "fileName" } }
Как возможно это реализовать?
Если писать if (fileSystemModel.isFolder(treeView.currentIndex)) - не работает как нужно.
treeView.currentIndex - всегда 0, а нужно получить именно индекс текущей записи.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
- molni99
- Қаз. 26, 2024, 1:29 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:20ұпай,
- Бағалау ұпайлары-10
Еще столкнулся с такой проблемой в модели для TreeView пишу:
В ответ при компиляции получаю:
ReferenceError: shortcuts is not defined
Я что-то забыл добавить? В документации на диалоги написано только добавить import QtQuick.Dialogs 1.2 ( FileDialog ).
shortcuts не работает и в самом FileDialog.
Добрый день!
По моему, currentIndex показывает текущий выбранный элемент, хотя могу и ошибаться.
Попробуйте получить индекс через styleData, это более гарантированно возвращает правильный индекс.
Что касается shortcuts , то тут думаю, что лучше будет использовать StandardPaths из QML, просто в вашем случае возможно какие-то проблемы из-за самого модуля QtQuick.Controls 2.
Спасибо! Все работает.
Попробовал в диалоге писать:
По console.log() индексы выводит правильные, только isFolder выдает не верный результат.
Может есть другой способ, кроме isFolder?
ммм... я сейчас посмотрел описание метода isFolder и там оказывается принимается значение int в качестве индекса, возможно он ожидает номер строки, а currentIndex возвращал QModelIndex, также как и styleData.index
Попробуйте передать туда номер строки, то есть так
или так
Спасибо!
Корректно отрабатывает вариант
Если использовать
во всех строках каждый раз меняется иконка при переходе по строкам в treeView.