2014-02-11 8 views
0

Я искал ответ на этот вопрос, но ничего не мог найти здесь, поэтому я прошу об этом.Использование QFileSystemModel в PySide, получение элемента из индекса

С QStandardModel довольно просто получить изделие с QModelIndex с помощью функции команды itemFromIndex.

model = openedIndex.model() 
item = model.itemFromIndex(openedIndex) 

Я заинтересован в этом в основном то же самое, но для QFileSystemModel, есть простой и прямой способ для меня, чтобы сделать это. В документах ничего не видно.

ответ

1

QFileSystemModel не имеет каких-либо элементов класса. Он не создает объект для каждого элемента.

Вы можете найти QFileSystemModel::filePath и QFileSystemModel::index методы полезны. Они позволяют преобразовать индекс в путь и наоборот. И индекс, и путь могут использоваться как уникальный идентификатор элемента.

Отключить некоторые предметы в QFileSystemModel невозможно. Вам нужно создать класс модели прокси, который будет возвращать почти те же данные и флаги, что и исходная, но при необходимости удалять флаг Qt::ItemIsEnabled.

+0

Тогда, если это не так, любые идеи о том, как я могу отключить его элементы. Если я устанавливаю фильтрацию, элементы становятся недоступными, поэтому я предполагаю, что это должно быть возможно? – ceorron

+1

Невозможно напрямую. Вам необходимо создать класс модели прокси, который будет возвращать почти те же данные и флаги, что и исходная модель, но при необходимости удалять флаг «Qt :: ItemIsEnabled». –

+0

Я создал прокси-модель, как бы я пошел об удалении флага 'Qt :: ItemIsEnabled', используя прокси-модель. – ceorron

 Смежные вопросы

  • Нет связанных вопросов^_^