2016-06-07 23 views
0

我知道widget的坐标系对于widget是本地的。 0,0左上角。QWidget成帧

我想在小部件中画一个框架,但是使用由rect()返回的QRect会导致右边和底部不框架。

有一种叫做'frameGeometry()'的方法,但是这会返回一个QRect,它与widget不在同一个坐标系统中,而是在父级co-orindate系统中。

有没有办法在本地坐标系统中获取窗口部件的窗体矩形。

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

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

这是做正确的事吗?

回答

0

小部件最有可能为其画布填充,您需要从小部件的QRect(它描述小部件消耗的整个空间,包括所有边上的填充)中减去以获得适合您的小部件的矩形。不知道具体的语法。

+0

谢谢,现在调查,有些方法称为contentsRect(),它返回与rect()和contentsMargins()相同的矩形,返回的边距全部为0. – SPlatten

+0

当您阅读小部件的QRect时,一个BottomRight点。它的坐标是否小于窗口小部件的高度和宽度,还是相同? 此外,我现在回忆起我的VCL小部件的问题是什么......他们有一个ContentPane,它具有比部件本身更小的边界矩形。你的小部件是否有类似的东西,即它们是否是面板? 不知道你指的是什么类型的QWidget,所以不能自己查看它。我是对应于QPushButton的VCL元素。 – starturtle

+0

你是非常正确的右下角是1像素插图。 – SPlatten