使用 Qt4(这里使用 PyQt4)来获得两个 QWidget 的交集区域——这对于 QRubberband 在进行选择时特别有用——只需这样做:
intersection = rubberband.geometry().intersected(mydocumentwidget.geometry())
现在这假设rubberband
和mydocumentwidget
具有相同的父小部件,即更准确地说,它们的坐标相对于同一原点。这是因为方法调用本身没有父对象,它是一个简单的元组,有 4 个整数和一些方法调用QRect.intersected()
。QRect
现在在我的情况下rubberband
,并且mydocumentwidget
有相同的父级,但我对橡皮筋与 mydocument 的子级(即文档的页面)的交叉感兴趣。然而,页面将它们的坐标参考到屏幕上的不同点。
如何计算橡皮筋和我的页面小部件之间的交集?有没有办法将坐标转换为引用父母的父母?我当然可以自己写下数学,但我认为它不是很干净。Qt4 是否提供任何方法来自动转换它?