限制 QFrame 中可用的 space

Limit the usable space in a QFrame

我有一个从 QFrame 派生的 class。我需要通过 subclassing paintEvent 在 QFrame 的底部区域绘制一些东西。这个 class 然后是其他 class 的基础 class,它将布局和小部件放在框架上。 我怎样才能避免派生 classes 将小部件放在我在基础 class 中绘制的底部区域?有没有办法限制小部件中可用的 space 从基础 class 到所有派生的 classes,而不让他们知道?

在不改变架构的情况下(这是我的第一个想法),我会推荐这样的东西:

void QWidget::setContentsMargins ( int left, int top, int right, int bottom )

Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom. The margins are used by the layout system, and may be used by subclasses to specify the area to draw in (e.g. excluding the frame).