c – Qt QGridLayout自动将项目中心(移动)到中间.

前端之家收集整理的这篇文章主要介绍了c – Qt QGridLayout自动将项目中心(移动)到中间.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的表单上有一个QHBoxLayout,添加了3个布局.第二个有关于我的问题的项目.

我在主布局的第二个窗格(QHBoxLayout)上有一个QVBoxLayout.
这个QVBoxLayout使用addWidget添加了一个QScrollArea.

此QScrollArea是名为“scrollContents”的QWidget的父级,后者又包含QGridLayout.

我正在为这个具有固定高度的QGridLayout添加一个自定义创建的小部件.我们现在可以考虑这个100px.

如果此QGridLayout具有项目,其总高度小于表单本身,则它们将这些小部件垂直居中,并在它们之间具有相同的空间量.

如果只有一个小部件,它就会出现在中间.但我希望它们从上到下列出.

例:[###表示QScrollArea的区域,其中有QGridLayout的QWidget.

OK      ->   DESIRED    -> NOT DESIRED AND WHAT HAPPENS
##########    ##########               ##########
# |item| #    # |item| #               #        #
# |item| #    #        #               #        #
# |item| #    #        #               #        #
# |item| #    #        #               # |item| #
# |item| #    #        #               #        #
# |item| #    #        #               #        #
# |item| #    #        #               #        #
##########    ##########               ##########
  |item|
  |item| 
  |item|

基本上:如果有9个“行”的空间,当添加单个项目时,它会出现在第5个位置的中间位置.如果有9个或更多,它们就会出现.如果有8个或更少,则它们之间的空间被扩展以使它们全部居中.

我怎么解决这个问题?

谢谢.

解决方法

还有一种方法与trollixx的答案不同:在QGridLayout的“底部添加一个虚拟小部件,其垂直大小策略设置为扩展.见 this answer,which also contains an example with a toolbar.

猜你在找的C&C++相关文章