QWidget框架

QWidget framing

我了解小部件的坐标系是小部件的本地坐标系。 0,0 左上角。

我想在widget中画一个边框,但是使用rect()返回的QRect会导致右侧和底部没有边框。

有一个名为 'frameGeometry()' 的方法,但是这个 returns QRect 与小部件不在同一个坐标系中,而是在父坐标系中。

有没有办法在本地坐标系中获取小部件的框架矩形。

我知道我可以转换 frameGeometry() 或简单地创建一个新矩形:

    QRect(0, 0, width()-1, height()-1);

这样做正确吗?

小部件很可能有一个填充 canvas,您需要从小部件的 QRect 中减去它(它描述了小部件消耗的整体 space,包括所有边上的填充)获得适合您的小部件的矩形。虽然不确定具体的语法。