我有一個QTableWidget中顯示的項目列表,每個項目對應一個特定的文件夾。如何清除QTreeView/QFileSystemModel
除此之外,我有一個QTreeView,與QFileSystemModel。當我從QTableWidget中選擇一個項目時,它會調用一個插槽(如下所示)以顯示相應的文件夾內容。
void MyWidget::diplayFolder(int row)
{
if (auto item = table->item(row, 1))
{
QString correspondingDirectory = item->text();
if (QDir(correspondingDirectory).exists())
{
// treeModel => QFileSystemModel
// tree => QTreeView
treeModel->setRootPath("");
treeModel->setRootPath(correspondingDirectory);
tree->setRootIndex(treeModel->index(correspondingDirectory));
}
else
{
qDebug() << "Reset tree => do not display anything!";
// treeModel->setRootPath("");
// tree->reset();
}
}
}
如果該目錄不存在,我不想顯示任何內容。但是,當我嘗試設置空根路徑或重置視圖時,它會顯示我所有的計算機驅動器。
如何重置或清除QTreeView?
您可以將根路徑設置爲您控制的空目錄嗎? –
它讓我想起了這篇文章:http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-and-qsortfilterproxymodel-with-regexp-f – Mikitori
@GeorgSchölly將根目錄設置爲一個空目錄的工作,但我是尋找更清潔的解決方案... – Arnaud