赞
踩
在之前的一个目录排序显示功能开发过程中,出现了排序错乱的问题,经过多次尝试,根本原因还是自己的无知操作导致的程序不可知问题:
m_FileSystemModel->setRootPath(m_DataLoadPath);
m_TreeView->setRootIndex(m_FileSystemModel->index(m_DataLoadPath)); //此处的路径设置必须和前面的一样,否则虽然可以正常显示目录,但是后面的排序等操作会出错,无效,甚至是错乱
//比如我之前随意设置为QDir::currentPath(),会出现上述问题
上述两条语句设置无误之后就是执行正常的排序操作了:
m_FileSystemModel = new QFileSystemModel(this); //QFileSystemModel是Qt的标准模型,使用Qt国际化来翻译界面文字为中文
m_FileSystemModel->setRootPath(m_DataLoadPath);
m_FileSystemModel->setFilter(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot);
m_TreeView->setModel(m_FileSystemModel);
m_TreeView->setRootIndex(m_FileSystemModel->index(m_DataLoadPath)); //此处不可以设置为QDir::currentPath()等其他的路径,前后要一致
m_TreeView->header()->hideSection(1); // ui->treeView->hideColumn(1);
m_TreeView->header()->hideSection(2);
m_TreeView->header()->hideSection(3);
m_TreeView->setSortingEnabled(true);
m_TreeView->sortByColumn(0, Qt::AscendingOrder);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。