如何在 Qt treeview 中初始化起始路径?
Posted
技术标签:
【中文标题】如何在 Qt treeview 中初始化起始路径?【英文标题】:How to initialize the starting path in Qt treeview? 【发布时间】:2014-08-01 01:46:05 【问题描述】:我想将 Qt 树视图中的起始路径初始化为 Linux Ubuntu 上的用户主目录。
我试过这段代码,但它不起作用。
QString sPath = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx";
dirmodel = new QFileSystemModel(this);
dirmodel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs);
dirmodel->setRootPath(sPath);
ui->treeView->setModel(dirmodel);
我已经测试了 sPath :
/home/<username>
$HOME
/home/casper/Music
没有人工作。 =[
如何解决?
感谢您的帮助。
【问题讨论】:
应该可以。你得到什么结果? @this.lau_ - 你指的是哪个 sPath? 1,2 还是 3?我只是得到路径“/” 【参考方案1】:加载模型后,我认为您需要在树小部件上调用setRootIndex
:
ui->treeView->setRootIndex(dirmodel->index("/home/casper"));
或者对于任何主目录(也适用于 Windows、OSX 等):
ui->treeView->setRootIndex(dirmodel->index(QDir::homePath()));
【讨论】:
当用户名不是“casper”时,这个方法能用吗?谢谢 @CasperLi,如果你特别想要主目录,你可以使用QDir::homePath()
。我已经用一个例子更新了我的答案。以上是关于如何在 Qt treeview 中初始化起始路径?的主要内容,如果未能解决你的问题,请参考以下文章
Qt View/Model/Data Paradigm:如何修改数据?