当前位置: 首页 > wzjs >正文

苏州专业高端网站建设整站优化 快速排名

苏州专业高端网站建设,整站优化 快速排名,中信建设有限责任公司 湖南中筑建设公司,安卓开发文档网格布局QGridLayout QGridLayout 是一个网格布局控件,它与 QVLayout 和 QHLayout 的不同在于,QGridLayout 能够允许自定义控件放入布局中所处的行和列。 1. QGridLayout属性 属性说明layoutLeftMargin左侧边距。layoutRightMargin右侧边距。layoutTo…

网格布局QGridLayout

QGridLayout 是一个网格布局控件,它与 QVLayoutQHLayout 的不同在于,QGridLayout 能够允许自定义控件放入布局中所处的行和列。

1. QGridLayout属性

属性说明
layoutLeftMargin左侧边距。
layoutRightMargin右侧边距。
layoutTopMargin上方边距。
layoutBottomMargin下方边距。
layoutHorizontalSpacing相邻元素之间水平方向的间距。
layoutVerticalSpacing相邻元素之间垂直方向的间距。
layoutRowStretch行方向的拉伸系数。
layoutColumnStretch列方向的拉伸系数。

2. QGridLayout方法

方法说明
addWidget(QWidget*, int row,int colum)把控件添加到布局管理器。QGridLayout 添加控件时,还需要写上添加到的行和列,但这个行和列的值只是用于按大小排列顺序,并不是真的行和列。
setLayout设置布局管理器到……(即设置到 widget 中或其他 layout 中)
setColumnStretch(int colum,int index)设置同一行某列控件的不同拉伸系数,index 非零表示拉伸系数, 0 表示控件不参与拉伸。

3. 使用QGridLayout添加控件到布局

注意,addWidget()QGridLayout 中还要指定行和列,但这个行和列只是一个用于比较大小来决定控件先后顺序的值,故意设置一个很大的值和很小的值并不会使两个控件间隔很远。代码一定要 this->setLayout(Glayout); 或 set 到其他父控件,否则不会显示。

#include "widget.h"
#include "ui_widget.h"
#include <QLayout>
#include <QPushButton>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QGridLayout* Glayout = new QGridLayout();QPushButton* button1 = new QPushButton("button1");QPushButton* button2 = new QPushButton("button2");QPushButton* button3 = new QPushButton("button3");QPushButton* button4 = new QPushButton("button4");//    //相当于垂直排布
//    Glayout->addWidget(button1,1,0);
//    Glayout->addWidget(button2,2,0);
//    Glayout->addWidget(button3,3,0);
//    Glayout->addWidget(button4,4,0);//    //相当于水平排布
//    Glayout->addWidget(button1,0,1);
//    Glayout->addWidget(button2,0,2);
//    Glayout->addWidget(button3,0,3);
//    Glayout->addWidget(button4,0,4);//对角线布局Glayout->addWidget(button1,1,1);Glayout->addWidget(button2,2,2);Glayout->addWidget(button3,3,3);Glayout->addWidget(button4,4,4);this->setLayout(Glayout);}Widget::~Widget()
{delete ui;
}

QGridLayout1

4. 调整QGridLayout中不同控件的拉伸比例

QGridLayout 有两个接口,setColumnStretch() 用于调整同一列的控件之间的左右拉伸比例, setRowStretch() 用于调整同一行控件的上下拉伸比例。但要注意,拉伸比例小于控件的 text 能显示的正常大小时,这个拉伸比例就不会起作用:

#include "widget.h"
#include "ui_widget.h"
#include <QLayout>
#include <QPushButton>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QGridLayout* Glayout = new QGridLayout();QPushButton* button1 = new QPushButton("button1");QPushButton* button2 = new QPushButton("button2");QPushButton* button3 = new QPushButton("button3");QPushButton* button4 = new QPushButton("button4");//相当于水平排布Glayout->addWidget(button1,0,1);Glayout->addWidget(button2,0,2);Glayout->addWidget(button3,0,3);Glayout->addWidget(button4,0,4);Glayout->setColumnStretch(1,1);Glayout->setColumnStretch(2,2);Glayout->setColumnStretch(3,4);Glayout->setColumnStretch(4,8);this->setLayout(Glayout);
}Widget::~Widget()
{delete ui;
}

QGridLayout2

1 : 2 : 4 : 8 1:2:4:8 1:2:4:8 的比例排布。


在使用 setRowStretch() 前要注意,有些控件是受限于自身 sizePolicy 属性影响,是不会随着这个拉伸设置而改变布局的:

#include "widget.h"
#include "ui_widget.h"
#include <QLayout>
#include <QPushButton>
#include <QSizePolicy>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QGridLayout* Glayout = new QGridLayout();QPushButton* button1 = new QPushButton("button1");QPushButton* button2 = new QPushButton("button2");QPushButton* button3 = new QPushButton("button3");QPushButton* button4 = new QPushButton("button4");//将按钮的水平和垂直方向都设置为任意拉伸button1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);button2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);button3->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);button4->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);Glayout->addWidget(button1,1,1);Glayout->addWidget(button2,1,2);Glayout->addWidget(button3,2,1);Glayout->addWidget(button4,2,2);Glayout->setRowStretch(1,1);Glayout->setRowStretch(2,2);this->setLayout(Glayout);
}Widget::~Widget()
{delete ui;
}

QGridLayout3

http://www.dtcms.com/wzjs/40176.html

相关文章:

  • 移动的网络网站建设湖南靠谱seo优化
  • 学会网站建设方案大数据营销系统
  • 如何查询网站打开速度做网站哪个公司最好
  • 白云电子商务网站建设百度广告投放价格
  • 网站甲假发头套真头发做的假发网店运营推广实训
  • 单位做网站的目的百度搜索指数排行榜
  • 用java做信息发布网站网站关键词在线优化
  • 深圳网络技术有限公司郑州seo实战培训
  • 推广员网站怎么做深圳优化seo
  • 网站360自然排名要怎么做bing搜索国内版
  • 网站的图片大小规定网站免费推广网站
  • 南京网站建设一条龙已备案域名购买平台
  • 做日本的网站好卖的东西最新网站查询工具
  • 郴州做网站 郴网互联搜索广告排名
  • 如何运营一个行业网站win10必做的优化
  • 做网站只解析www的会怎么样宁波seo怎么做推广渠道
  • 北京展览网站建设营销网络推广哪家好
  • 做网站 用虚拟服务器iis陕西seo主管
  • 网站建设案例教程关键词分类工具
  • 成都网站建设名录网络营销措施有哪些
  • 手机创建微信公众号seo入门培训学多久
  • 网站建设报价表百度网址大全官网
  • 做商演任务的网站广告投放是什么工作
  • 制作网站用c 做前台找资源最好的是哪个软件
  • 建立网站有什么好处软文投放平台有哪些
  • 网站框架软文推广例子
  • 个人网页设计作品模板学生seo项目是什么
  • 厦门免费网站建设淄博新闻头条最新消息
  • 曲阳网站建设腾讯企点客服
  • 福州网站建设好的公司seo推广绩效考核指标是什么