PyQt - 在小部件后面绘制矩形

PyQt - Draw rectangle behind a widget

我有一个 QStackedWidget,里面有一个 QLineEdit 和其他几个小部件。这个 QStackedWidget 相当动态 - 您可以通过 clicking/dragging 在其布局内移动它,通过右键单击它来更改其当前小部件,等等

我想在 QStackedWidget 周围绘制一个简单的灰色矩形或灰色圆角矩形,让人们知道他们正在查看的 QLineEdit 很重要。这个绘制的矩形必须能够跟随 QStackedWidget,以便当我将它移动到屏幕上的其他位置时它能正确地跟随小部件。

到目前为止,我已经尝试了几种方法,但它们在某些方面都存在不足,或者它不会随小部件一起移动。谁能告诉我怎么做?

根据您的 clicking/dragging 的实施方式,您应该能够将 QStackedWidget 放入另一个 QFrame,或者将 QFrame 放入您的 QStackedWidget 并将所有其他控件放在 QFrame 中。 QFrame 支持在它们周围绘制边框。

frame = QFrame()
frame.setFrameStyle(QFrame.StyledPanel)
frame.setLineWidth(2)