所以最近我开始了一个项目,我想在其中显示一个图表,显示不同数据集之间的关系。
该图由边和节点组成,而这两个类都继承了 QQuickPaintedItem 并覆盖了paint(QPainter*painter) 方法。我有另一个类,它将所有节点和边缘存储在两个 QList 中。当我想显示图表时,每个节点和边缘的绘制方法都会被调用并被绘制到 QQuickView 中。我通过为 QQuickView 设置一个 Qml 文件来做到这一点(重要:加载的 qml 文件与实际的图形无关,一切都是用 QQuickPaintedItem 的绘画方法绘制的,我没有将任何与图形相关的内容暴露给 Qml . Qml 文件用于显示图表的一些控件)并获取 QQuickView 的内容项(QQuickItem* from method contentItem())并将其设置为每个节点和边缘的父项。所有这些对我来说都很好。
现在我的问题是:我想要显示的一些图表比我想要显示它们的实际视图大,所以为了解决这个问题,我想为我的视图实现水平和垂直滚动。但是,由于我不能使用像 ListView 这样的预定义 Qml 布局,所以我没有找到任何似乎可以解决我的问题的方法。对于我的图表。
有谁知道我如何实现滚动?有没有办法为我的 QQuickView 实现这个,或者有没有办法将我的两个节点和边缘列表暴露给 Qml 并在那里实现滚动?
(如果您需要一些代码,请随时提出。我认为现在分享一些代码是没有意义的,因为我首先正在寻找如何处理这个主题的想法)。
谢谢!