界面开发框架Qt新手入门教程:Dir视图使用实例

Qt 是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。

点击获取Qt Widget组件下载

本示例演示了树形视图的用法,以及在触摸屏上的平滑滑动。

Dir视图示例展示了本地文件系统的树视图,它使用QFileSystemModel 类来提供文件和目录信息。

界面开发框架Qt新手入门教程:Dir视图使用实例_第1张图片

QCommandLineParser parser;
parser.setApplicationDescription("Qt Dir View Example");
parser.addHelpOption();
parser.addVersionOption();
QCommandLineOption dontUseCustomDirectoryIconsOption("c", "Set QFileSystemModel::DontUseCustomDirectoryIcons");
parser.addOption(dontUseCustomDirectoryIconsOption);
QCommandLineOption dontWatchOption("w", "Set QFileSystemModel::DontWatch");
parser.addOption(dontWatchOption);
parser.addPositionalArgument("directory", "The directory to start in.");
parser.process(app);
const QString rootPath = parser.positionalArguments().isEmpty()

本示例支持许多命令行选项,这些选项包括:

  • 应用程序描述
  • -help 选项
  • -version 选项
  • 如果指定了选项{-c},应用程序将不会使用自定义目录选项
QFileSystemModel model;
QFileIconProvider iconProvider;
model.setIconProvider(&iconProvider);
model.setRootPath("");
if (parser.isSet(dontUseCustomDirectoryIconsOption))
model.setOption(QFileSystemModel::DontUseCustomDirectoryIcons);
if (parser.isSet(dontWatchOption))
model.setOption(QFileSystemModel::DontWatchForChanges);
QTreeView tree;
tree.setModel(&model);

将model声明为读取本地文件系统的数据模型,setrootpath("")将当前文件夹设置为模型将开始读取的文件夹,QTreeView对象树以树状结构可视化文件系统。

tree.setAnimated(false);
tree.setIndentation(20);
tree.setSortingEnabled(true);
const QSize availableSize = tree.screen()->availableGeometry().size();
tree.resize(availableSize / 2);
tree.setColumnWidth(0, tree.width() / 3);

设置文件系统树的动画、缩进、排序和大小调整的布局选项。

QScroller::grabGesture(&tree, QScroller::TouchGesture);

创建一个QScroller实例来识别触摸屏上的手势,这样您就可以用手指轻弹树视图。

 

你可能感兴趣的:(qt,开发语言,c++,开发工具,ui)