我在 Qt 中编写了一个自定义小部件,它子类化并进行自定义绘画,但是它是一个非矩形对象(具有多边形顶部区域),并且工作正常,但是当添加布局时,它们“打破”到顶部区域,因为它是得到错误的边界区域。无论如何我可以在自定义小部件中指定子小部件的边界区域是什么?
问问题
251 次
我在 Qt 中编写了一个自定义小部件,它子类化并进行自定义绘画,但是它是一个非矩形对象(具有多边形顶部区域),并且工作正常,但是当添加布局时,它们“打破”到顶部区域,因为它是得到错误的边界区域。无论如何我可以在自定义小部件中指定子小部件的边界区域是什么?
一种方法是QLayout::setContentsMargins
在小部件的布局上使用。
如果您想要一个不是矩形的边界,您可以使用填充了固定大小的矩形填充物的网格布局。填充物可以使用扫描线转换从多边形派生——只需将多个扫描线合并成一个更高的边界矩形并将其用于填充物。