美文网首页
Qml 子部件更新其他同类子部件,消息陷阱。

Qml 子部件更新其他同类子部件,消息陷阱。

作者: Feel君 | 来源:发表于2017-03-17 13:20 被阅读29次

如果某个子部件有个属性pos变更了,需要同步到其他n-1个同级子部件。方法是其onPosChanged事件处理for 循环,次数为(n-1)。因为如果其他子部件更新pos 后也会发送同步消息,每个次数也是n-1,这样一共是n*(n-1)次。

问题来了,如何将循环次数降低为n-1次呢?

一种方法是:设置一个中间部件,比如父部件,让它也有同样的属性pos ,同时让它在接到更新通知后通过其onPosChanged通知其他子部件更新。为什么?

因为中间部件在其onPosChanged槽函数内发出n-1次通知以后,无论是接到哪个子部件回馈的更新通知,都不会改变中间部件的pos,也就不会再次触发中间部件的onPosChanged事件。

相关文章

  • Qml 子部件更新其他同类子部件,消息陷阱。

    如果某个子部件有个属性pos变更了,需要同步到其他n-1个同级子部件。方法是其onPosChanged事件处理fo...

  • Flutter Widget

    Flutter Widget 1、显示小部件2、更新小部件的状态信息3、摆放小部件4、添加、删除小部件5、小部件设...

  • Positioned

    Positioned 控制[堆栈]子级的位置的小部件。

  • (7)、Study Flutter Container Widg

    Container Widget:一个结合了常见的绘画,定位和大小调整的便利小部件。如果窗口小部件没有子节点,没有...

  • Day02

    Qt窗口部件 窗口定义Qt中把没有嵌入其他部件中的部件称为窗口。 QWidget *widget = new Q...

  • Qt官方示例-计算器

    该示例显示了如何使用信号和槽来实现计算器小部件的功能,以及如何使用QGridLayout将子小部件放置在网格中。 ...

  • Column Row使用心得

    Column 使用Column最好用Container这类部件设置好高度,不然其他部件如:Expanded、Tex...

  • Flutter Decoration 使用介绍

    Decoration Class介绍 Decoration是个窗口小部件(widget),可以在子widget的绘...

  • 第2章 Qt窗口 2.1 窗口和控件

    2.1.1 窗口定义 窗口:当一个部件没有嵌入到其他部件中,则把这个部件叫作窗口或者顶层窗口,顶层窗口是没有父窗口...

  • 技术思想前沿3,摘自《技术的本质》

    技术的两种发展机制: 内部替换和结构深化。内部替换是指用更好的部件(子技术)更换某一形成阻碍的部件。结构深化是指寻...

网友评论

      本文标题:Qml 子部件更新其他同类子部件,消息陷阱。

      本文链接:https://www.haomeiwen.com/subject/vijenttx.html