Qt6教程之二(2) Spacers

这篇具有很好参考价值的文章主要介绍了Qt6教程之二(2) Spacers。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(二) Spacers(弹簧)

若对控件布局不熟悉的小伙伴,请参见上一篇文章 二 Qt控件之一: 布局 Layouts 。

Qt的spacer布局控件主要用于填充两个控件之间的间隔距离,当窗口缩放时,弹簧会把控件向两端(上下、左右)进行弹起,其弹起量随窗口的变化而变化。

spacer分为vertical spacer(垂直弹簧)和horizontal spacer(水平弹簧)两种。

垂直vertical spacer控制上下,horizontal spacer控制水平,下面将结合两种弹簧进行综合演示。

不过弹簧需要结合布局(水平布局、垂直布局、网格布局、表单布局)才能发挥其“弹”的作用,否则将无支撑效果!

一 拖拽式实现spacer布局

首先在UI界面拉取五个push button按钮,并把按钮名字分别改为上、下、中、左、右,大概摆放位置如下:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

接着在拉取两个vertical spacer和两个horizontal spacer ,大概位置如下:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

使用鼠标以框选方式选中中间的三个按钮和两个vertical spacer,如下:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui 再点击鼠标邮件选择垂直布局,如下:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui 在按住鼠标左键以框选方式全选界面元素,然后鼠标右键选择水平布局,如下:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

以上完成了刚才咋们添加的五个按钮及四个弹框的总体布局,现在还需要给顶层窗口设置布局,这这样才能达到弹簧的 “弹效果”。

在窗口的空白处点击鼠标右键,选择栅格布局,如下:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

至此,程序运行后,五个按钮就会随着窗口的缩放而自动 “收弹” 了,当窗口为最小化时:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui 当窗口为最大化时:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

关于spacer的使用场景还有很多,待各位同仁发掘与创新! 

 二 纯代码实现spacer布局

此处也是使用纯代码的方式实现上面的布局效果,直接开始在main.cpp文件中写代码:

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QStackedLayout>
#include <QListWidget>
#include <QHBoxLayout>
#include<QSpacerItem>
#include<QVBoxLayout>
#include<QHBoxLayout>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //创建主窗口
    QWidget widget;
    widget.setWindowTitle("分组布局");
    //设置窗口布局
    widget.setGeometry(100,100,600,400);

    //向主窗口中添加一个水平布局控件
    QHBoxLayout *hlayout=new QHBoxLayout;
    QVBoxLayout *vlayout=new QVBoxLayout;

    //create pushbutton
    QPushButton left,center,right,top,bottom;
    left.setText("left");
    center.setText("center");
    right.setText("right");
    top.setText("top");
    bottom.setText("bottom");

    vlayout->addWidget(&top);
    vlayout->addItem(new QSpacerItem(400,400,QSizePolicy::Expanding,QSizePolicy::Maximum));
    vlayout->addWidget(&center);
     vlayout->addItem(new QSpacerItem(400,400,QSizePolicy::Expanding,QSizePolicy::Maximum));
    vlayout->addWidget(&bottom);

    hlayout->addWidget(&left);
    hlayout->addSpacerItem(new QSpacerItem(10,10,QSizePolicy::Expanding,QSizePolicy::Minimum));
    hlayout->addLayout(vlayout);
    hlayout->addSpacerItem(new QSpacerItem(10,10,QSizePolicy::Expanding,QSizePolicy::Minimum));
    hlayout->addWidget(&right);


    QGridLayout *grid=new QGridLayout;
    grid->addLayout(hlayout,0,0);

    widget.setLayout(grid);
    widget.show();

    return a.exec();
}

运行效果:

Qt6教程之二(2) Spacers,程序开发,Qt学习,qt,c++,ui

至此,演示完毕,咋们评论区见! 

下一个教程链接:二 Qt控件三之按钮

上一个教程: Qt6教程之二(1) 布局 Layouts文章来源地址https://www.toymoban.com/news/detail-649920.html

到了这里,关于Qt6教程之二(2) Spacers的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Qt6教程之一 Qt介绍及准备工作

    Qt6教程之一 Qt介绍及准备工作

    在正式开始之前,需要在自己电脑上面搭建好Qt的开发环境,本教程使用的Qt开发环境为Qt6.2 。 那话不多说,咋们开始做准备工作吧! 第一步:查看电脑硬件配置及操作系统 如果有一台较好配置的电脑,那么无疑用起来是最舒心的,推荐的最佳电脑配置: 由于Qt是为跨平台而

    2024年02月09日
    浏览(14)
  • Qt6.2教程——7.QT常用控件QTextEdit

    Qt6.2教程——7.QT常用控件QTextEdit

    QTextEdit 是 Qt 的一个用于编辑和显示纯文本和富文本的控件。它是功能强大且高度灵活的,可以用于实现多种任务,如文本编辑,数据表示,以及HTML的显示和编辑等。QTextEdit 支持富文本功能,这意味着它可以显示各种字体,颜色和文字格式。同时,QTextEdit 也支持文本搜索,

    2024年02月11日
    浏览(15)
  • Qt6.2教程——5.QT常用控件QLabel

    Qt6.2教程——5.QT常用控件QLabel

    QLabel是Qt库中一个非常基础且重要的类。它主要用于在图形用户界面(GUI)中展示文本或图片。最常见的用法就是在窗口上显示一段文字或者标签,比如“用户名”,“密码”等等。QLabel继承自QFrame,因此它也可以具有框架。它能处理富文本格式,这意味着您可以改变部分文本的

    2024年02月10日
    浏览(13)
  • Qt6入门教程 6:Qt元对象系统

    Qt6入门教程 6:Qt元对象系统

    目录 一.什么是Qt元对象系统? 二.编译时Qt Creator偷摸做了哪些事情? 1.uic 2.rcc 3.moc Qt中的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。元对象系统是基于以下3个条件的: ●该类必须继承自QObject类; ●必须在类的私有声

    2024年01月18日
    浏览(14)
  • Qt6 c++教程2 Qt Creator简介

    Qt6 c++教程2 Qt Creator简介

    Qt Creator是Qt自带的集成开发环境(IDE),用于跨平台应用程序开发。在本章中,您将学习Qt Creator集成开发环境的基础知识,并了解集成开发环境的用户界面 (UI)。我们还将了解如何在 Qt Creator中创建和管理项目。本Qt 模块包括使用Qt Creator开发一个简单的Qt应用程序、快捷方式

    2024年02月05日
    浏览(11)
  • 【QT教程】QT6QFuture与并发

    QT6QFuture与并发 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C++扩展开发视频课程 免费QT视频课程 您可以看免费1000+个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费Q

    2024年04月24日
    浏览(11)
  • Qt6入门教程 4:Qt Creator常用技巧

    Qt6入门教程 4:Qt Creator常用技巧

    在上一篇Qt6入门教程 3:创建Hello World项目中,通过创建一个Qt项目,对Qt Creator已经有了比较直观的认识,本文将介绍它的一些常用技巧。 Qt Creator启动后默认显示欢迎页面 创建项目已经用过了,打开项目也很简单,就是打开一个已经存在的项目。 项目历史记录非常有用,能

    2024年02月03日
    浏览(14)
  • Qt6 c++教程9测试&调试

    Qt6 c++教程9测试&调试

    调试和测试是软件开发的重要组成部分。在本章中,你将学习如何调试 Qt 项目、不同的调试技术以及 Qt 支持的调试器。调试是发现错误或不希望出现的行为的根本原因并加以解决的过程。我们还将讨论使用Qt Test框架进行单元测试。Qt Test是基于Qt的应用程序和库的单元测试框

    2024年02月05日
    浏览(9)
  • QT基础教程之二 第一个Qt小程序

    QT基础教程之二 第一个Qt小程序

    在Qt程序中,最常用的控件之一就是按钮了,首先我们来看下如何创建一个按钮 上面代码中,一个按钮其实就是一个QPushButton类下的对象,如果只是创建出对象,是无法显示到窗口中的,所以我们需要依赖一个父窗口,也就是指定一个父亲利用setParent函数即可,如果想设置按

    2024年02月11日
    浏览(14)
  • Linux Qt6 安装教程及错误解决

    Linux Qt6 安装教程及错误解决

    在Linux环境,通常为Ubuntu,安装Qt开发环境,与Windows安装相比,还是稍显繁琐,需要多做几个步骤。 这里的Ubuntu版本采用的是 ubuntu-22.04.2-desktop-amd64 ,所以,比旧版本会少很多坑,但本文会尽量写出可能遇到的坑。 这里采用镜像地址进行下载,避免网络过慢。 镜像地址:h

    2024年02月16日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包