Я использую QFileSystemModel с QTreeView для отображения содержимого корневого каталога, теперь хотят обновить qtreeview всякий раз, когда привод добавляется или удаляется.Как обновить QFileSystemModel, когда диск добавлен/удален?
Пробовал с помощью кнопки обновления, чтобы добиться этого с помощью слота, чтобы удалить модель и снова установить ее в QTreeView. но проблема здесь заключается в том, что она не расширяет ширину столбца до его содержимого после второй установки модели на представление.
есть ли какое-либо лучшее решение для достижения этой цели. вот кодовый бит ...
QTreeView fileExplorerTreeView = new QTreeView();
fileExplorerTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
fileExplorerTreeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
void loadFileExplorer()
{
if(fileSystemModel)
{
delete fileSystemModel;
fileSystemModel = 0;
}
fileSystemModel = new QFileSystemModel;
fileSystemModel->setRootPath("");
fileExplorerTreeView->setModel(fileSystemModel);
QHeaderView* hHeader = fileExplorerTreeView->header();
hHeader->hideSection(1);
hHeader->hideSection(2);
hHeader->hideSection(3);
fileExplorerTreeView->resizeColumnToContents(0);
fileExplorerTreeView->header()->setStretchLastSection(false);
}
Может быть, я прочитал psot неправильно, проблема в том, что не диски DonT apper, но ширину столбцов? – Trompa
Если модель обновлена с приводами, нет необходимости возвращать модель в представление, поэтому я не получу проблему ширины столбца. оба связаны между собой. – Prady
Вы пробовали использовать 'void QHeaderView :: setSectionResizeMode (int logicalIndex, режим ResizeMode)'? – Trompa