Qt:让所有的孩子都在帕伦区域内

2024-04-20 12:43:21 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一个问题,所以请原谅我!在

我当前在画布中有一个小部件作为我的父程序。用户可以在运行时向父级添加或删除小部件。然后这些小部件被赋予一个绝对位置,也就是说,它们不是由布局来定位的。添加后,用户可以随意移动小部件。在

我希望用户能够通过拖动一个框来选择一组小部件。我已经编码了用户拖动时显示矩形的部分。现在,我希望能够检索该矩形(区域)内的所有小部件。在

我知道findChild()和findChildren()函数,它们确实按预期返回子函数。但我真正需要的是一种将搜索限制在区域边界的方法,因为“画布”中很可能会有很多小部件。(由于我所做的工作的性质,可能有数千个小部件分布在一个非常大的区域!)在

我的问题是:我的最佳选择是什么?我是否应该继续使用findChildren()并在列表中循环以手动查找该区域中的子级。或者我应该使用findChild(x,y)遍历区域内的所有像素?或者也许有一个更简单的解决方案可以加快这个过程?是不是跟孩子们一样(x,y,宽,高)?在

希望我的问题有道理。我尽量把事情解释清楚。谢谢!在


Tags: 函数用户定位程序区域编码部件画布
1条回答
网友
1楼 · 发布于 2024-04-20 12:43:21

如果您使用QGraphicsScene而不是自己滚动,则可以使用items(..)方法非常有效地在特定区域找到您的孩子。在

只有在QGraphicsScene中才有可能,因为它使用了BSP空间加速结构,所以如果您不能在合理的时间内迁移到QGraphicsScene,那么您将自己编写。这并不像听起来那么难,我写了很多边界卷层次结构结构,它们非常简单。在

相关问题 更多 >