我正在使用Qt / c ++作为控制器和QML组件作为视图的应用程序。该应用会以这种方式显示相关的设备和频道:
+--------------------+ | DEVICES | |--------------------| | MAC |<-----------------------------------------------+ | ... | | | ID_CURRENT_CHANNEL |+--+ | | ... | | +----------------------+ | +--------------------+ | | AUDIO CHANNELS | | | |----------------------| | +---------->| ID | | | ... | | | MAC_SOURCE_DEVICE |+--------+ | ... | +----------------------+
因此,一个设备可以播放音频频道,而频道有源设备。
我知道如何将数据从一个“域”暴露给另一个“域”,因此我为两个,通道和设备创建了模型,并设法将它们暴露给QML视图。但是当我想从一个模型获取相关数据并使用QML组件显示它时,我的困境(和问题)就出现了。我找到了三种方法:
创建一个混合设备和通道的新模型,其中包含所有数据的角色,例如通道ID,名称,质量和...源设备名称,mac等。我不喜欢这个解决方案。
在视图中创建信号(macSelectedChanged),并从控制器加载带有数据(deviceSelected)的上下文属性,作为发出信号的响应。
使用javascript查找与视图相关的数据。我有一个小小的想法,如何做到这一点,恕我直言,这是最一致的方式,但性能会降低。
哪种方式最好?还有其他更好的吗?我正在寻找可用性和性能方面的答案。
提前致谢。