• QT 模型/视图 编程 使用篇


    使用模型和视图

      下面的章节解释了如何在Qt中使用模型/视图模式。每个章节都包括一个例子,然后是如何创建新组件的章节。

    Qt中包含两个模型

      Qt提供的两个标准模型是QStandardItemModel和QFileSystemModel。QStandardItemModel是一个多用途的模型,可用于表示列表、表和树视图所需的各种不同的数据结构。此模型还包含数据项。QFileSystemModel是一个维护目录内容信息的模型。因此,它本身不包含任何数据项,而只是表示本地归档系统上的文件和目录。

      QFileSystemModel提供了一个可以试验的现成模型,并且可以轻松地配置为使用现有数据。使用这个模型,我们可以展示如何建立一个模型来使用现成的视图,并探索如何使用模型索引来操作数据。

    在一个已存在的模型上使用视图

      QListView和QTreeView类是与QFileSystemModel一起使用的最合适的视图。下面的示例在树视图中显示目录的内容,旁边是列表视图中的相同信息。视图共享用户的选择,以便在两个视图中都突出显示选中的项目。

     我们设置了QFileSystemModel以便可以使用,并创建一些视图来显示目录的内容。这展示了使用模型的最简单方法。模型的构建和使用是在一个main()函数中完成的:

    该模型的建立是为了使用来自某个文件系统的数据。对setRootPath()的调用告诉模型文件系统上的哪个驱动器将公开给视图。

    我们创建了两个视图,这样我们可以用两种不同的方式检查模型中的项目:

    视图以与其他小部件相同的方式构造。设置一个视图来显示模型中的项目,只需使用目录模型作为参数调用它的setModel()函数。我们通过在每个视图上调用setRootIndex()函数来过滤模型提供的数据,为当前目录从文件系统模型中传递合适的模型索引。

    本例中使用的index()函数是QFileSystemModel所特有的;我们为它提供一个目录,它返回一个模型索引。模型类中讨论模型索引。

    该函数的其余部分只显示splitter小部件中的视图,并运行应用程序的事件循环:

    在上面的例子中,我们忽略了如何处理项目的选择。关于处理项视图中的选择的部分将更详细地讨论这个主题。

  • 相关阅读:
    利用 .NET Framework 命令行工具
    和AI机器人Alice的一段聊天记录
    WINDOWS自启动程序的10大隐身之所
    开放式开发/开源项目TimeDog[C#WindowsApp]
    Microsoft月度中文速递
    新安装的VS2003出现了一个问题不能新建项目!
    实例构造器和类型构造器的一些比较
    C++ 模板里面的typename
    vim 折叠的用法
    Redis3:持久化
  • 原文地址:https://www.cnblogs.com/helloc14/p/12383293.html
Copyright © 2020-2023  润新知