• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >qt > qt中QLayout的使用小结

qt中QLayout的使用小结

作者:春夜喜雨 字体:[增加 减小] 来源:互联网 时间:2017-09-22

春夜喜雨通过本文主要向大家介绍了QLayout等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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(new QSpacerItem(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)

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-09-13QTableView 双击 获取 一行数据
  • 2017-09-23Qt-代码编程风格与规范
  • 2017-09-22qt中QTreeWidget使用
  • 2017-09-22qt中QLayout的使用小结
  • 2017-09-22QGraphicsItem的缩放
  • 2017-09-08Qt 之 QSqlRelation Class
  • 2017-09-23Qt-Qt creator快捷键

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • QTableView 双击 获取 一行数据
    • qt中QTreeWidget使用
    • Qt-Qt creator快捷键
    • qt中QLayout的使用小结
    • Qt-代码编程风格与规范
    • Qt 之 QSqlRelation Class
    • QGraphicsItem的缩放

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有