【问题标题】:Access implementation files for QML GridView访问 QML GridView 的实现文件
【发布时间】:2021-05-05 16:04:00
【问题描述】:

我正在为项目制作一个网格,而 GridView 几乎完全符合我的需要,但以下情况除外:

  • 我不想从 Flickable 继承并手动实现我自己的滚动行为
  • 我希望可以选择在网格单元格之间添加间距。

我是否可以查看和编辑 QML GridView 类型(甚至更好,一般是 QtQuick 类型)的实际 QML 或 C++ 实现,以便我可以从中学习并对其进行更改以满足我的需要?这是我在使用 QML 时反复发现自己想做的事情。这只是一个例子。

【问题讨论】:

    标签: qt qml


    【解决方案1】:

    您可以在此处查看 GridView 的源代码:

    https://github.com/qt/qtdeclarative/blob/5.15.2/src/quick/items/qquickgridview.cpp

    如果您从源代码构建 Qt,您可以在源代码树中找到相同的文件,对其进行编辑并重新编译。

    您也可以继承它并覆盖它的某些行为(尽管 Qt 在设计上很难做到这一点)。您也可以将它的代码复制到您自己的项目中,重命名并使其成为项目特定的实现类。

    但是,我建议避免这种情况。例如,您可以轻松地在 GridView 中的网格单元之间添加空间,方法是将网格内容放置在与您的内容之间有一定边距的 Item 内。

    此外,ScrollBar 可以与 Flickable 一起使用,并对其滚动行为提供一些控制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      相关资源
      最近更新 更多