Qt---Layout,设置控件边距,拉伸因子

来源:互联网 发布:阿里云imap设置 编辑:程序博客网 时间:2024/05/16 05:01


控件所占空间

QGridLayout *LeftLayout =new QGridLayout(this);LeftLayout->addWidget(label1, 0, 0);       //label1在第1行第1列LeftLayout->addWidget(label2, 0, 1);       //label2在第1行第2列LeftLayout->addWidget(btn1, 1, 0, 1, 2);   //btn1在第2行第1列,占用的列数为1,占用的行数为2LeftLayout->setColumnStretch(0, 1);   //第1列占表格布局的1/4LeftLayout->setColumnStretch(1, 3);   //第2列占表格布局的3/4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这里写图片描述

QHBoxLayout *RightLayout =new QHBoxLayout(this);RightLayout->setMargin(10);  //控件与窗体左右边距RightLayout->setSpacing(10); //控件之间的边距RightLayout->addWidget(label3);RightLayout->addWidget(label4);RightLayout->setStretchFactor(label3, 1);  //label3占水平布局的1/4RightLayout->setStretchFactor(label4, 3);  //label4占水平布局的3/4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这里写图片描述

如果将QHBoxLayout改为QVBoxLayout,结果如下: 
这里写图片描述

控件位置

QVBoxLayout *ButtomLayout = new QVBoxLayout(this);  ButtomLayout->addStretch(1);    //在label5前面的空白占总空白的1/6ButtomLayout->addWidget(label5);    ButtomLayout->addStretch(3);   //在label6前面的空白占总空白的3/6ButtomLayout->addWidget(label6); ButtomLayout->addStretch(2);   //在label6后面的空白占总空白的2/6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这里写图片描述

如果将QVBoxLayout改为QHBoxLayout,结果如下: 
这里写图片描述

总体布局

QGridLayout *mainLayout =new QGridLayout(this);mainLayout->setMargin(15);mainLayout->setSpacing(10);mainLayout->addLayout(LeftLayout,0, 0);mainLayout->addLayout(RightLayout,0, 1);mainLayout->addLayout(ButtomLayout, 1, 0, 1, 2);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6



转载地址:http://blog.csdn.net/u012319493/article/details/51866152



1 0