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

微网站 .net百度给做网站收费多少钱

微网站 .net,百度给做网站收费多少钱,怎样做网站初中生,石家庄seo推广公司qt-C语法笔记之Stretch与Spacer的关系分析 code review! 文章目录qt-C语法笔记之Stretch与Spacer的关系分析1. Stretch(拉伸因子)2. Horizontal Spacer 和 Vertical Spacer3. Stretch 和 Spacer 的关系4. 实际应用中的选择5. 注意事项6. 代码与 Qt Desig…

qt-C++语法笔记之Stretch与Spacer的关系分析

在这里插入图片描述

code review!

文章目录

  • qt-C++语法笔记之Stretch与Spacer的关系分析
    • 1. Stretch(拉伸因子)
    • 2. Horizontal Spacer 和 Vertical Spacer
    • 3. Stretch 和 Spacer 的关系
    • 4. 实际应用中的选择
    • 5. 注意事项
    • 6. 代码与 Qt Designer 的转换
    • 总结

在 Qt C++ 和 Qt Designer 中,stretch 和 Horizontal Spacer、Vertical Spacer 的关系主要体现在它们在布局管理中的作用:它们都用于控制布局中控件之间的间距和空间分配,但使用方式和场景略有不同。

1. Stretch(拉伸因子)

  • 定义stretch 是 Qt 布局管理器(如 QHBoxLayoutQVBoxLayoutQGridLayout 等)中的一个属性,用于指定控件或空间在布局中的相对拉伸比例。

  • 功能:通过设置 stretch 值,可以控制布局中控件或空白区域在可用空间中的分配比例。stretch 是一个整数,通常在调用 addWidget()addStretch() 时设置。

  • 使用场景

    • 在代码中通过 QBoxLayout::addStretch(int stretch) 添加一个可伸缩的空白区域,用于填充布局中的剩余空间。
    • addWidget(QWidget*, int stretch) 中为特定控件设置拉伸因子,决定控件在布局中的扩展比例。
    • 例如:
      QHBoxLayout *layout = new QHBoxLayout;
      layout->addWidget(button1, 1); // button1 占 1 份空间
      layout->addWidget(button2, 2); // button2 占 2 份空间
      layout->addStretch(1);        // 空白区域,占 1 份空间
      
      在这个例子中,button1button2 的宽度比例为 1:2,剩余空间由 addStretch 填充。
  • 特点

    • 仅在代码中设置,动态性强。
    • stretch 是相对比例,实际空间分配取决于布局的整体大小和所有控件的 stretch 值。
    • 适用于需要精确控制控件比例的场景。

2. Horizontal Spacer 和 Vertical Spacer

  • 定义Horizontal SpacerVertical Spacer 是 Qt Designer 中的空间控件(QSpacerItem 的可视化表示),用于在布局中添加固定或可伸缩的空白区域。
  • 功能
    • Horizontal Spacer:在水平方向上添加空白区域,控制控件之间的水平间距。
    • Vertical Spacer:在垂直方向上添加空白区域,控制控件之间的垂直间距。
    • 它们可以设置为固定大小或可伸缩(由 sizePolicy 属性控制)。
  • 使用场景
    • 在 Qt Designer 中,通过拖放 Horizontal SpacerVertical Spacer 到布局中,直观地调整控件间距。
    • 常用于:
      • 将控件推到布局的一侧(如将按钮推到窗口右侧)。
      • 在布局中添加动态调整的空白区域。
    • 例如,在 Qt Designer 中拖入一个 Horizontal Spacer,将其 sizePolicy 设置为 Expanding,可以让它占用布局中的剩余水平空间,效果类似于 addStretch()
  • 特点
    • 直观易用,适合在 Qt Designer 中进行可视化布局设计。
    • 通过 sizePolicy(如 FixedMinimumExpanding)控制 spacer 的大小和伸缩性。
    • 在代码中,spacer 对应于 QSpacerItem,可以通过 QBoxLayout::addSpacerItem()addStretch() 实现类似功能。

3. Stretch 和 Spacer 的关系

  • 共同点

    • 两者都用于管理布局中的空间分配,解决控件间距或剩余空间填充的问题。
    • 都可以实现动态伸缩,适应布局大小的变化。
    • QBoxLayout 中,addStretch() 的效果等价于在 Qt Designer 中添加一个 Expanding 属性的 Horizontal SpacerVertical Spacer
  • 不同点

    特性StretchHorizontal/Vertical Spacer
    定义方式代码中通过 addStretch() 或控件拉伸因子设置Qt Designer 中拖放控件,或代码中用 QSpacerItem
    使用场景更适合代码实现的动态布局更适合可视化设计或混合开发
    灵活性直接通过整数比例控制,精确但需要代码可视化调整,属性设置更直观
    底层实现布局管理器的拉伸因子QSpacerItem 对象,集成到布局中
  • 等效性示例

    • 在 Qt Designer 中添加一个 Horizontal SpacersizePolicyExpanding),等价于在代码中调用:
      layout->addStretch(1);
      
    • 如果在 Qt Designer 中设置 spacer 的 sizePolicyFixed(如固定宽度 20px),等价于在代码中:
      layout->addSpacerItem(new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum));
      

4. 实际应用中的选择

  • 使用 Stretch
    • 当你在代码中动态创建布局或需要精确控制控件比例时,使用 addStretch() 或为控件设置拉伸因子。
    • 适合需要频繁调整布局比例的复杂场景。
  • 使用 Spacer
    • 在 Qt Designer 中进行快速原型设计或静态布局时,使用 Horizontal SpacerVertical Spacer 更直观。
    • 适合需要快速调整控件间距或对齐方式的场景。
  • 混合使用
    • 在 Qt Designer 中设计的布局,可以通过代码进一步调整 stretch 或添加新的 QSpacerItem,实现更复杂的布局需求。

5. 注意事项

  • Spacer 的 Size Policy
    • 在 Qt Designer 中,spacer 的行为由 sizePolicy 决定。Expanding 对应于可伸缩空间,Fixed 对应于固定间距。
    • 如果 spacer 的 sizePolicy 设置为 MinimumPreferred,可能不会完全等同于 addStretch(),需要根据实际需求调整。
  • 布局嵌套
    • 在复杂布局中,stretch 和 spacer 可能需要结合嵌套布局(如 QHBoxLayout 嵌套 QVBoxLayout)使用,以实现更灵活的空间分配。
  • 性能
    • addStretch() 和 spacer 的性能开销几乎可以忽略,但在极复杂布局中,过多使用 spacer 可能增加布局管理的复杂度。

6. 代码与 Qt Designer 的转换

  • 从 Qt Designer 到代码
    • Qt Designer 生成的 .ui 文件会将 spacer 转换为 QSpacerItem 或布局的 stretch 属性。例如,一个 Horizontal Spacer 可能在生成的代码中表现为:
      layout->addItem(new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
      
  • 从代码到 Qt Designer
    • 如果代码中使用了 addStretch(),在 Qt Designer 中可以通过拖放一个 Horizontal SpacerVertical Spacer,并设置其 sizePolicyExpanding 来模拟。

总结

  • Stretch 是代码中控制布局比例的工具,适合动态、精确的布局管理。
  • Horizontal/Vertical Spacer 是 Qt Designer 中的可视化工具,适合快速设计和直观调整。
  • 两者在功能上可以互换(通过 QSpacerItemsizePolicy 实现),但使用场景不同:代码中用 stretch,设计器中用 spacer。结合使用可以提高开发效率和布局灵活性。

文章转载自:

http://jUcGvsWd.kgsLc.cn
http://Tz3MUcWX.kgsLc.cn
http://X0RrOyPF.kgsLc.cn
http://5w1vk9KG.kgsLc.cn
http://nCDl4dYe.kgsLc.cn
http://XOZilhGX.kgsLc.cn
http://eZDqyA2c.kgsLc.cn
http://axXcmj8G.kgsLc.cn
http://ZrNCl8ZW.kgsLc.cn
http://gZrBG5H5.kgsLc.cn
http://qEX1Pksc.kgsLc.cn
http://1qNVip9e.kgsLc.cn
http://PDiS5795.kgsLc.cn
http://OHRZ4WjA.kgsLc.cn
http://t1ZVKar3.kgsLc.cn
http://u3ZH91T2.kgsLc.cn
http://AfV7CLhy.kgsLc.cn
http://NKMGqHH2.kgsLc.cn
http://VESghrEi.kgsLc.cn
http://jBzezz43.kgsLc.cn
http://JDRn8bnf.kgsLc.cn
http://WoDLyt0f.kgsLc.cn
http://96bFYhOH.kgsLc.cn
http://tiIp0Z6a.kgsLc.cn
http://ZSFdEodz.kgsLc.cn
http://4RVsbilk.kgsLc.cn
http://F2wxuAwE.kgsLc.cn
http://VJpCNfE0.kgsLc.cn
http://G7Yc2mj3.kgsLc.cn
http://5TQ3Awlk.kgsLc.cn
http://www.dtcms.com/wzjs/665977.html

相关文章:

  • 开发商城网站开发陕西建设网官方网站
  • 深圳最好的网站开发公司电话wordpress侧边小图标联系方式
  • html5网站素材手机qq网页版登录
  • 网站设计开发文档模板下载建筑网图集
  • 亚洲网站正在建设中什么是营销
  • 网站后台怎么上传文件安阳昨天发生的事件
  • net开发网站广东中山今天最新通知
  • 太仓市娄城高新建设有限公司网站千博企业网站管理系统2013
  • 建网站 就能开店网络营销案例题
  • 自己做的网站能备案cps广告联盟
  • 青海省教育厅门户网站登录做网站招聘的职业顾问
  • 阿里云 拦截网站建设网站要钱吗
  • 医疗教育的网站建设网页图片居中
  • 杭州的网站设计谷德设计网 景观
  • 企业网站一般多少钱wordpress中文别名分类目录
  • 中介专门做别墅的网站全网推广营销
  • 网站 开发流程wordpress没有图片
  • 贵阳网站建设平台河南专业网站建设创新中心
  • 销售网站开发的背景网站seo推广招聘
  • 建网站一年要多少钱房地产政策最新消息2022
  • 建设招标网官方网站电脑版大连建设工程
  • 网站开发环境是什么360怎么变成建设银行首选网站
  • seo首页网站天津做网站优化哪家好
  • 广州网站关键字优化网站建设案例好么
  • 承德市网站开发厦门做网站最好的公司
  • 提高网站权重的方法阿里云服务器 个人网站
  • 好的建网站的公司易记域名网站大全
  • 做一个网站维护多少钱wordpress 防盗链
  • 网站开发必须要搭建环境吗wordpress删除月份归档
  • 响应式网站工具wordpress开发手册下载地址