这是我第一个问题,还请见谅!
目前,在我的程序中,我有一个作为画布的父窗口小部件。用户可以在运行时添加或删除父窗口小部件中的其他小部件 。这些小部件会被赋予绝对位置,也就是说,它们不会被任何布局所定位。一旦添加后,用户就可以任意移动小部件。
我想让用户通过拖动框框选择一组小部件。我已经编码了显示矩形的部分,而用户正在拖动。现在,我希望能够检索该矩形(区域)内的所有小部件。
我知道 findChild() 和 findChildren() 函数,它们确实会返回子项。但我真正需要的是一种限制搜索到区域范围内的方法,因为 '画布' 中可能有很多小部件。(由于我所做的事情的性质,可能会有成千上万个小部件分布在非常大的区域内!)
这是我的问题:我最好的选择是什么?是否应该直接使用 findChildren() 并循环遍历列表以手动查找区域内的子项。或者我应该通过 findChild(x, y)循环遍历区域内的所有像素? 或者也许有一个更简单的解决方案,可以加快这个过程?类似于 findChildren(x, y, width, height)?
希望我的问题说得清楚。我尽力了解释一切。谢谢!
目前,在我的程序中,我有一个作为画布的父窗口小部件。用户可以在运行时添加或删除父窗口小部件中的其他小部件 。这些小部件会被赋予绝对位置,也就是说,它们不会被任何布局所定位。一旦添加后,用户就可以任意移动小部件。
我想让用户通过拖动框框选择一组小部件。我已经编码了显示矩形的部分,而用户正在拖动。现在,我希望能够检索该矩形(区域)内的所有小部件。
我知道 findChild() 和 findChildren() 函数,它们确实会返回子项。但我真正需要的是一种限制搜索到区域范围内的方法,因为 '画布' 中可能有很多小部件。(由于我所做的事情的性质,可能会有成千上万个小部件分布在非常大的区域内!)
这是我的问题:我最好的选择是什么?是否应该直接使用 findChildren() 并循环遍历列表以手动查找区域内的子项。或者我应该通过 findChild(x, y)循环遍历区域内的所有像素? 或者也许有一个更简单的解决方案,可以加快这个过程?类似于 findChildren(x, y, width, height)?
希望我的问题说得清楚。我尽力了解释一切。谢谢!