【问题标题】:How to initialize the starting path in Qt treeview?如何在 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 :
    1. /home/<username>
    2. ${HOME}
    3. /home/casper/Music

没有人工作。 =[

如何解决?

感谢您的帮助。

【问题讨论】:

  • 应该可以。你得到什么结果?
  • @this.lau_ - 你指的是哪个 sPath? 1,2 还是 3?我只是得到路径“/”

标签: qt path initialization dir qtreeview


【解决方案1】:

加载模型后,我认为您需要在树小部件上调用setRootIndex

ui->treeView->setRootIndex(dirmodel->index("/home/casper"));

或者对于任何主目录(也适用于 Windows、OSX 等):

ui->treeView->setRootIndex(dirmodel->index(QDir::homePath()));

【讨论】:

  • 当用户名不是“casper”时,这个方法能用吗?谢谢
  • @CasperLi,如果你特别想要主目录,你可以使用QDir::homePath()。我已经用一个例子更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多