QLayout的使用小结
来源:互联网 发布:etm软件会员 编辑:程序博客网 时间:2024/05/18 15:53
个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
参考:http://doc.qt.io/qt-5/qlayout.html
参考:http://qimo601.iteye.com/blog/1413634
QLayout作为Qt的界面布局利器,使用起来确实非常的方便:
继承关系
QLayoutItem
QLayout(还继承自QOBject)
QBoxLayout
QVBoxLayout
QHBoxLayout
QFormLayout
QGridLayout
QGraphicsLayout
QStackedLayout
QSpacerItem
QWidgetItem
QObject
作为QLayout的父类,QLayoutItem提供了下列方法,包括绘制和范围的信息:
virtual QSize sizeHint() const = 0
virtual QRect geometry() const = 0
virtual void invalidate()
virtual QLayout * layout()
Qt::Alignment alignment() const
QLayout提供的信息就比较多了:提供了子页面、子Layout的添加接口,设置边界、菜单项等的接口
virtual void addItem(QLayoutItem *item) = 0
void addWidget(QWidget*w)
void setContentsMargins(intleft, int top, int right, int bottom)
void setMenuBar(QWidget*widget)
QBoxLayout作为QLayout的子类,提供了一些额外的信息:提供元素的拉伸比例,添加空元素等
void addLayout(QLayout*layout, int stretch = 0)
void addSpacerItem(QSpacerItem*spacerItem)
void addSpacing(intsize)
bool setStretchFactor(QWidget*widget, int stretch)
bool setStretchFactor(QLayout*layout, int stretch)
界面的继承情况,在http://doc.qt.io/qt-5/qlayout.html有详细的介绍,不做额外的介绍。
使用的过程的例子介绍一些:
// 设置边界为0
QHBoxLayout *pLayout1 =new QHBoxLayout();
QHBoxLayout *pLayout2 =new QHBoxLayout();
pLayout1->setMargin(0);
pLayout2->setMargin(0);
// 设置拉伸比例2:3
pLayoutMain->addLayout(pLayout1);
pLayoutMain->addLayout(pLayout2);
pLayoutMain->setStretch(0, 2);
pLayoutMain->setStretch(1, 3);
// 底面边距设0
int left = 0,right = 0, top = 0,bottom = 0;
pMainLayout->getContentsMargins(&left, &top, &right, &bottom);
pMainLayout->setContentsMargins(left,right, top, 0);
// 添加填充弹簧条
pLayout1->addItem(newQSpacerItem(1, 1, QSizePolicy::Expanding,QSizePolicy::Minimum));
// 元素设置位置:左对齐,上下居中
pLabel->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
// 设置固定高度
pLabel->setFixedHeight(21);
// 设置固定宽度
pLabel->setFixedWidth(21);
个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
- QLayout的使用小结
- QLayout的排版和使用
- Qlayout
- QT实现竖直方向的窗口布局(使用QLayout类)
- 关于layout()->setSizeConstraint(QLayout::SetFixedSize)的问题
- Qt中layout()->setSizeConstraint(QLayout::SetFixedSize);崩溃的问题
- Qt中layout()->setSizeConstraint(QLayout::SetFixedSize);崩溃的问题
- treeview的使用小结
- treeview的使用小结
- LinkButton的使用小结
- CListCtrl 使用的小结
- Invoke的使用小结
- perldoc的使用小结
- crontab的使用小结
- RemoteObject的使用小结
- NamedParameterJdbcDaoSupport的使用小结
- typedef的使用小结
- qsort的使用小结
- RecyclerView添加头布局
- Win8.1 安装nltk及nltk_data数据
- My97日期插件实现日期多选
- Unity_DOTween动画的学习(二)_DOTween Sequence 使用图解
- iText解析pdf调研
- QLayout的使用小结
- Spring——控制反转、反射与依赖注入
- 关于静态变量的初始化时机
- JavaScript入门篇--你也有控制权(DOM操作)
- 如何将百度地图引入到HTML和VUE文件中?
- 【分治计数】BZOJ3745 [Coci2015]Norma
- 2017年9月16日提高组T2 B 三维导弹拦截
- 阿里云远程链接mysql等端口的配置问题
- python——进程线程、与协程基础概述