您的位置:首页 > 编程语言 > Qt开发

Qt创建文件浏览器(续)

2016-04-13 12:42 441 查看
 

    文件浏览器主要有三部分组成: 1 返回上级菜单按钮   2地址栏(QLinedit)   3目录显示栏(Qtreeview)

    上篇文章调用系统的文件目录到Qtreeview部件中 主要实现了文件浏览器的主体功能  这一篇主要是添加一些小功能来完善文件浏览器 主要包括以下几个功能:

                   1  在地址栏粘贴地址 按下回车直接跳转到对应目录

                   2 地址栏添加地址自动补全  用户输入一个字符就会弹出下拉菜单提示输入

                   3  添加返回按钮的信号槽  实现返回上一级菜单

          通过实现这些功能 我们可以了解Qt在GUI编程的强大之处!

     功能一: 创建槽函数 slotGetPath() 相应QL'ineEdit的returnPressed()信号 

                    void fileView::slotgetPath()
{
QString path=LineEditDir->text();
path.replace(QString("\\"),QString("/")); //替换符号
// tree->expand(model->index(path)); //展开对应的文件项
tree->setRootIndex(model->index(path));

}
   功能二: 利用到了Qt中的 QCompleter类(见参考文献1)   

     completer=new QCompleter(model,LineEditDir);//Qt自动补全类 地址补全类

//给地址栏添加补全类并设置显示数目
completer->setMaxVisibleItems(5);
LineEditDir->setCompleter(completer);

    功能三: 返回按钮:
              用了QDir的cdup() 函数  但QDir有个问题是他不能返回到磁盘目录  所以用cdUp()返回的bool值作为参数实现一个if语句

    感觉方法用的有点笨 不过基本功能还是都实现了的!

                  //实现返回上一层菜单
void fileView::slotBtnclicked()
{
QString path=LineEditDir->text();
path.replace(QString("\\"),QString("/")); //替换符号
QDir dir;
dir.setPath(path);
dir.cdUp(); //返回父目录
path=dir.absolutePath();
path.replace(QString("/"),QString("\\")); //替换符号
if(dir.cdUp()==true)
{
tree->setRootIndex(model->index(path));
LineEditDir->setText(path);
} else if(dir.cdUp()==false)
{
tree->setRootIndex(model->index(" "));
LineEditDir->setText("");
}

}

贴一张界面图:
   


   

参考文献:

【1】  QCompleter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: