这是我的第一个问题,请耐心等待!
目前在我的程序中,我有一个作为画布的父小部件。用户可以在运行时向父级添加或删除小部件。然后给这些小部件一个绝对位置,也就是说,它们不是由布局定位的。添加后,用户可以任意移动小部件。
我希望用户能够通过在它们周围拖动一个框来选择一组小部件。我已经编写了在用户拖动时显示矩形的部分。现在,我希望能够检索该矩形(区域)内的所有小部件。
我知道 findChild() 和 findChildren() 函数,它们确实按预期返回了孩子。但我真正需要的是一种将搜索限制在区域边界的方法,因为“画布”中很可能会有很多小部件。(由于我正在做的事情的性质,可能有数千个小部件分布在一个非常大的区域!)
这是我的问题:什么是我最好的选择?我是否应该继续使用 findChildren() 并遍历列表以手动查找该区域内的孩子。还是应该使用 findChild(x, y) 遍历区域内的所有像素?或者也许有一个更简单的解决方案可以加快这个过程?类似于 findChildren(x, y, width, height) 的东西?
希望我的问题是有道理的。我试图尽可能地解释事情。谢谢!