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