实现包含多个 QQuickPaintedItems 的 QQuickView 的滚动



所以最近我开始了一个项目,我想显示一个显示不同数据集之间关系的图表。

该图由边和节点组成,而这两个类都继承了 QQuickPaintedItem 并覆盖了 paint(QPainter* painter( 方法。我还有另一个类,它将所有节点和边缘存储在两个 QL ist 中。当我想显示图形时,每个节点和边缘的绘制方法都会被调用并绘制到 QQuickView 中。我通过为 QQuickView 设置一个 Qml 文件来做到这一点(重要提示:加载的 qml 文件与实际的图形无关,所有内容都是用 QQuickPaintedItem 的 paint 方法绘制的,我没有向 Qml 公开任何与图形相关的内容。 Qml文件用于显示图形的一些控件(并获取QQuickView的内容项(QQuickItem*来自方法contentItem(((,并将其设置为每个节点和边缘的父节点。所有这些对我来说都很好。

现在谈谈我的问题:我想显示的一些图形比我想要显示它们的实际视图大,所以为了解决这个问题,我想为我的视图实现水平和垂直滚动。但是,由于我无法使用像ListView aso这样的预定义Qml布局,因此我还没有找到任何似乎可以解决我的问题的东西。为我的图表。

有人知道如何实现滚动吗?有没有办法为我的QQuickView实现这一点,或者有没有办法将我的两个节点和边缘列表公开给Qml并在那里实现滚动?

(如果您需要一些代码,请随时询问。我认为现在共享一些代码没有意义,因为我正在寻找首先如何处理这个主题的想法(。

谢谢!

如果您不介意渲染所有内容,则需要的是Flickable.

设置可轻拂项的可视宽度和高度(显式设置、使用锚点或布局(并将自定义项嵌套在其中,并根据总大小或自定义项设置可轻拂项的contentWidthcontentHeight

相关内容

  • 没有找到相关文章

最新更新