如何从一个模型获取相关数据到另一个模型

时间:2014-02-24 08:07:47

标签: c++ qt qml

我正在使用Qt / c ++作为控制器和QML组件作为视图的应用程序。该应用会以这种方式显示相关的设备频道

+--------------------+
|      DEVICES       |
|--------------------|
| MAC                |<-----------------------------------------------+
| ...                |                                                |
| ID_CURRENT_CHANNEL |+--+                                            |
| ...                |   |           +----------------------+         |
+--------------------+   |           |     AUDIO CHANNELS   |         |
                         |           |----------------------|         |
                         +---------->| ID                   |         |
                                     | ...                  |         |
                                     | MAC_SOURCE_DEVICE    |+--------+
                                     | ...                  |
                                     +----------------------+

因此,一个设备可以播放音频频道,而频道有源设备。

我知道如何将数据从一个“域”暴露给另一个“域”,因此我为两个,通道和设备创建了模型,并设法将它们暴露给QML视图。但是当我想从一个模型获取相关数据并使用QML组件显示它时,我的困境(和问题)就出现了。我找到了三种方法:

  • 创建一个混合设备和通道的新模型,其中包含所有数据的角色,例如通道ID,名称,质量和...源设备名称,mac等。我不喜欢这个解决方案。

  • 在视图中创建信号(macSelectedChanged),并从控制器加载带有数据(deviceSelected)的上下文属性,作为发出信号的响应。

  • 使用javascript查找与视图相关的数据。我有一个小小的想法,如何做到这一点,恕我直言,这是最一致的方式,但性能会降低。

哪种方式最好?还有其他更好的吗?我正在寻找可用性和性能方面的答案。

提前致谢。

0 个答案:

没有答案