访问宇宙 2023-04-04 22:20 采纳率: 80.4%
浏览 30
已结题

QT可视化开发:如何实现目录树以及显示表格?

QT开发
我现在需要实现如下图所示图形界面。
具体要求:
1. 左侧自动读入电脑的所有文件目录,用户点击目录可以逐级选择子目录。最上层目录是C盘、D盘、E盘。
2. 如果选中的子目录中包含后缀为.HDB的文本文件,就读取子目录中的所有HDB文件,逐个打开HDB文件,读取文件的相关信息,然后以一行的形式显示在右侧的表格中。
3. 读取文件信息的功能在源程序的主函数中已经实现,现在我的主要问题是不知道怎么实现QT的可视化。

img

  • 写回答

3条回答 默认 最新

  • mahuifa C++领域优质创作者 2023-04-05 09:56
    关注

    要在Qt中实现目录树,您可以使用QTreeView和QFileSystemModel类。下面是一个简单的示例代码,可以将当前目录的文件和文件夹显示在目录树中:

    #include <QApplication>
    #include <QTreeView>
    #include <QFileSystemModel>
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        // 创建一个QFileSystemModel对象,设置根路径为当前目录
        QFileSystemModel model;
        model.setRootPath(QDir::currentPath());
        // 创建一个QTreeView对象,并将QFileSystemModel对象设置为其模型
        QTreeView treeView;
        treeView.setModel(&model);
        // 将目录树设置为可编辑
        treeView.setEditTriggers(QAbstractItemView::NoEditTriggers);
        // 显示目录树
        treeView.show();
        return a.exec();
    }
    

    这个示例代码创建了一个QFileSystemModel对象,并将其设置为QTreeView的模型。在创建QFileSystemModel对象时,我们将根路径设置为当前目录。这将导致QFileSystemModel对象显示当前目录下的所有文件和文件夹。最后,我们将QTreeView对象设置为不可编辑,并将其显示在屏幕上。
    您可以根据需要修改QFileSystemModel和QTreeView的属性以满足您的需求。例如,您可以使用QFileSystemModel的setFilter方法来过滤显示的文件类型。

    表格可以使用QTableView实现;
    也可以看这里https://blog.csdn.net/qq_43627907/article/details/125677496

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月10日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗