Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 控件边距与布局边距_Qt - Fatal编程技术网

Qt 控件边距与布局边距

Qt 控件边距与布局边距,qt,Qt,QWidget和布局中都有SetContentsMargin。那么是增加了两个利润率,还是两个利润率相同。举一个例子,当一个布局被设置为widget,边距同时被设置为widget和布局时,Qt是否有一个标准的方法?Qt的所有内置布局都是这样的吗?这一切背后的原始想法是什么?在小部件上,边距是小部件中的一个区域 因此,如果您有一个大小为100 x 50、边距为(5,6,5,6)的小部件,那么您将有一个contentsRect()的QRect(5,6 90x38) 小部件可以提取其边距,就QLayo

QWidget和布局中都有SetContentsMargin。那么是增加了两个利润率,还是两个利润率相同。举一个例子,当一个布局被设置为widget,边距同时被设置为widget和布局时,Qt是否有一个标准的方法?Qt的所有内置布局都是这样的吗?这一切背后的原始想法是什么?

在小部件上,边距是小部件中的一个区域

因此,如果您有一个大小为100 x 50、边距为(5,6,5,6)的小部件,那么您将有一个
contentsRect()
QRect(5,6 90x38)

小部件可以提取其边距,就
QLayout
而言,这些边距在小部件中计算。这些边距用于通知其他小部件和子类小部件的“核心”在哪里。这有助于告诉子类允许在哪里绘制

布局的边距是相同的。它们表示布局中的一个区域。如果您有一个左边距为10px的布局,则第一个小部件将渲染距离布局边界10px的内容。如果此小部件的左边距为5px,则小部件的有意义内容将从距离布局边框15px的位置开始。然而,正如我之前所说,10px到15px的部分在小部件中,小部件可以在这个空间中绘制

在布局中,您也有
间距
,至于边距,它加起来就是小部件的边距

附加信息 如果将布局放置在小部件中,则布局将只占据内容矩形(
contentsRect()
)。然后版面将有自己的边距,计入版面内


总而言之,总可见边距是父窗口小部件的边距+布局的边距+子窗口小部件的边距。

感谢您的回答,但这不是我要问的。在上面的示例中,您有外部布局和内部两个小部件。您已经解释了外部布局的边距和内部小部件的边距。我的问题是,当您在小部件中有一个布局时。以下面的代码为例:QWidget*ContainerWidget=newqwdget;QGridLayout*ContainerLayout=新的QGridLayout(ContainerWidget)。现在ContainerWidget内的总边距=ContainerWidget的边距或ContainerWidget的边距+ContainerLayout的边距?