【发布时间】:2017-04-11 15:21:54
【问题描述】:
我正在使用 QFileSystemModel 和 QTreeView,并且我试图让 TreeView 默认选择第一个文件夹/文件。为此,我需要获取第一个文件夹/文件的索引,但在 QFileSystemModel 中找不到执行此操作的方法。
你能帮帮我吗?
提前谢谢你。
我试过setCurrentIndex(_model->index(x, y)),但没用。这是我的代码和显示的树:
void CodeView::finished_loading(QString file) {
qDebug()<<"Currently selected : " << _model->fileName( ui->treeView->currentIndex());
qDebug()<<"(0,0) "<< _model->fileName(_model->index(0,0));
qDebug()<<"(1,0) "<< _model->fileName(_model->index(1,0));
qDebug()<<"(2,0) "<< _model->fileName(_model->index(2,0));
qDebug()<<"(3,0) "<< _model->fileName(_model->index(3,0));
qDebug()<<"(0,0) "<< _model->fileName(_model->index(0,0));
qDebug()<<"(1,1) "<< _model->fileName(_model->index(1,1));
qDebug()<<"(2,1) "<< _model->fileName(_model->index(2,1));
qDebug()<<"(3,1) "<< _model->fileName(_model->index(3,1));
ui->treeView->setCurrentIndex(_model.index(1,0));
qDebug()<<"New selected : " << _model->fileName( ui->treeView->currentIndex());
}
输出:
Currently selected : "Wassim Gharbi"
(0,0) "/"
(1,0) ""
(2,0) ""
(3,0) ""
(0,0) "/"
(1,1) ""
(2,1) ""
(3,1) ""
New selected : "Wassim Gharbi"
【问题讨论】:
-
model->index(x, y)中的第二个参数不代表子项。它实际上代表项目的列,如修改日期、文件大小、名称等。有关如何获取父索引的子索引,请参阅我的答案。