QT布局——设置的一些基本细节

来源:互联网 发布:linux没有rc.d 编辑:程序博客网 时间:2024/06/16 03:26
1.外边距Margin
  • setMargin(int)
  • setContentsMargins(int left, int top, int right, int bottom);
  • setContentsMargins(const QMargins &margins) 

setMargin可以设置左、上、右、下的外边距,设置之后,他们的外边距是相同的。 
setContentsMargins与其功能相同,但是可以将左、上、右、下的外边距设置为不同的值。

2.伸缩空间QSpacerItem--addStretch()

1).居右

在第一个控件之前添加伸缩,这样所有的控件就会居右显示。

QHBoxLayout *pHLayout = newpHLayout;pHLayout->addStretch();//添加伸缩pHLayout->addWidget(pButton1);pHLayout->addWidget(pButton2);


2).居左

在最后一个控件之后添加伸缩,这样所有的控件就会居左显示。

QHBoxLayout*pHLayout=new QHBoxLayout();pHLayout->addWidget(pButton1);pHLayout->addWidget(pButton2);pHLayout->addStretch();// 添加伸缩



3).居中

在第一个控件之前、最后一个控件之后添加伸缩,这样所有的控件就会居中显示。

QHBoxLayout*pHLayout=new QHBoxLayout();pHLayout->addStretch();// 第一个控件之前添加伸缩pHLayout->addWidget(pButton1);pHLayout->addWidget(pButton2);pHLayout->addStretch();// 最后一个控件之后添加伸缩


4).均分

在每一个控件之间都添加伸缩,这样所有的控件之间的间距都会相同。

3.addwidget

addWidget(QWidget *, int row, int column, Qt::Alignment = 0)addWidget(QWidget *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0) 

默认的,我们添加控件至水平布局中,默认都是垂直方向居中对齐的

这个单元将从row和column开始,扩展到rowSpan和columnSpan指定的倍数的行和列。如果rowSpan或columnSpan的值为-1,则窗口部件将扩展到布局的底部或者右边边缘处,Qt::Alignment为对齐方式。

QHBoxLayout *pHLayout = new QHBoxLayout();pHLayout->addStretch();// 水平居左 垂直居上pHLayout->addWidget(pButton1,0 , Qt::AlignLeft| Qt::AlignTop);pHLayout->addWidget(pButton2,0 , Qt::AlignLeft| Qt::AlignTop);pHLayout->addWidget(pButton3);// 水平居左 垂直居下pHLayout->addWidget(pButton4,0 , Qt::AlignLeft| Qt::AlignBottom);pHLayout->addWidget(pButton5,0 , Qt::AlignLeft| Qt::AlignBottom);

4).设置间距

  • setSpacing(int spacing)
  • setHorizontalSpacing(int spacing)
  • setVerticalSpacing(int spacing) 

setSpacing()可以同时设置水平、垂直间距,设置之后,水平、垂直间距相同。 
setHorizontalSpacing()、setVerticalSpacing()可以分别设置水平间距、垂直间距。

5).设置行,列大小

  • setRowMinimumHeight(int row, int minSize) 
    设置行最小高度

  • setColumnMinimumWidth(int column, int minSize) 
    设置列最小宽度










原创粉丝点击