Qt窗体设计的布局

本文介绍Qt窗体的布局。

Qt窗体的布局分为手动布局和自动布局,手动布局即靠手工排布各控件的位置。而自动布局则是根据选择的布局类型自动按此类型排布各控件的位置,使用起来比较方便,本文主要介绍Qt的自动布局。

1.垂直布局

垂直布局就是将其中的控件按垂直方向等间隔排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;QPushButton *button1 = new QPushButton("One");QPushButton *button2 = new QPushButton("Two");QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(button1);layout->addWidget(button2);window->setLayout(layout);window->show();

2.水平布局

垂直布局就是将其中的控件按水平方向等间隔排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;QPushButton *button1 = new QPushButton("One");QPushButton *button2 = new QPushButton("Two");QHBoxLayout *layout = new QHBoxLayout;layout->addWidget(button1);layout->addWidget(button2);window->setLayout(layout);window->show();

3.栅格布局

垂直布局就是将其中的控件按栅格对齐。如果控件的位置不处于水平或垂直对齐的方向,则自动按矩阵的方式排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;QPushButton *button1 = new QPushButton("One");QPushButton *button2 = new QPushButton("Two");QGridLayout *layout = new QGridLayout;layout->addWidget(button1, 0, 0);layout->addWidget(button2, 1, 1);window->setLayout(layout);window->show();

4.表单布局

表单布局主要用于Label控件和EditLine控件或其他控件按表格(N*2)的方式进行排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;QPushButton *button1 = new QPushButton("One");QPushButton *button2 = new QPushButton("Two");QLabel *label1 = new QLabel("one:");QLabel *label2 = new QLabel("two:");QFormLayout *layout = new QFormLayout;layout->insertRow(0, label1, button1);layout->insertRow(1, label2, button2);window->setLayout(layout);window->show();

5.弹簧控件

弹簧控件配合以上布局可以实现控件随窗口变换自动缩放的效果。如下图的排布可实现窗口拖拽及最大化时控件也随着自动缩放及最大化。

弹簧控件构造函数:

QSpacerItem(int w, int h, QSizePolicy::Policy hPolicy = QSizePolicy::Minimum, QSizePolicy::Policy vPolicy = QSizePolicy::Minimum)

代码方式:

    QWidget *widget = new QWidget;QVBoxLayout *layout = new QVBoxLayout(widget);QPushButton *button = new QPushButton("按钮");QLineEdit *lineEdit = new QLineEdit;QSpacerItem *spaceItem = new QSpacerItem(20, 40, QSizePolicy::Expanding, QSizePolicy::Maximum);layout->addWidget(button);layout->addItem(spaceItem);layout->addWidget(lineEdit);widget->setLayout(layout);widget->show();

总结,本文介绍了Qt窗体的布局。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上,没有感知到异常或中断 3.2、Windbg感知到了中断,中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

义乌再次位列第一档!2022年跨境电商综试区评估结果揭晓!

义乌跨境电商综试区捷报频传,在商务部公布的“2022年跨境电子商务综合试验区评估”结果中,中国(义乌)跨境电子商务综合试验区(以下简称:“跨境综试区”)评估结果为成效明显,综合排名…

【C++技能树】Lambda表达式

Halo,这里是Ppeua。平时主要更新C,数据结构算法,Linux与ROS…感兴趣就关注我bua! 文章目录 0. Lambda表达式简介1. Lambda表达式2. Lambda表达式语法 0. Lambda表达式简介 在C98及之前,想要对sort进行自定义排序,或者对自定义类…

uniapp实现登录组件之外区域置灰并引导登录

实现需求 每个页面需要根据用户是否登录决定是否显示登陆组件,登录组件半屏底部显示,登录组件之外区域置灰,功能按钮点击之后引导提示登录.页面效果如下: 实现思路说明 设置登录组件背景颜色为灰色,将页面分成登录区域(底部)和非登陆区域(上面灰色显示部分), 置灰区域添加…

腾讯共享WiFi贴项目推广员是怎么收益的?

腾讯共享WiFi贴项目是一种非常普遍的商业共享模式,它为用户提供了便携、高速的无线网络服务。然而,人们对于这种项目是否真的能让共享WiFi贴推广员挣到钱还存在疑问。 腾讯共享WiFi贴扫码项目的运作方式是这样的:推广员将WiFi贴二维码粘贴到商…

Qt扫盲-QImage 理论总结

QImage 理论总结 一、概述二、读写图像文件三、图像信息四、像素操作1. 32位2. 8位 五、图像格式六、图像转换 一、概述 QImage类提供了一个独立于硬件的图像表示,允许直接访问像素数据,并且可以用作绘画设备。Qt提供了四个类来处理图像数据&#xff1a…

ES挂载不上怎么处理?

全文搜索 EelasticSearch安装 Docker安装 docker run -d --name es7 -e ES_JAVA_POTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -v /home/206/es7/data/:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 elasticsearch:7.14.0 …

VS的使用时遇到了basePath不能是相对路径的问题,如何处理?

使用VS,当你编译运行代码时出现以下的问题 解决方法 原因:文件库的路径存在问题,需要把相对路径改为绝对路径。 如何解决:去右键点击解决方案,选择属性-》调试-》命令中的参数被设置为相对路径。就可以解决以上的问题…

【代码随想录第48天】动态规划7

代码随想录第48天| 动态规划7 322. 零钱兑换279.完全平方数 322. 零钱兑换 LeetCode题目: 322. 零钱兑换 代码随想录:322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计…

(十二)Python文件操作(I/O)

和其它编程语言一样,Python 也具有操作文件(I/O)的能力,比如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。 除了提供文件操作基本的函数之外,Python 还提供了很多模块,例如 fileinpu…

优质可视化素材大放送,全部免费,承包你今年的大屏项目

做大屏的时候,是不是经常遇到没有素材用的情况,也不知道从哪里可以下载到免费又酷炫的素材!帆软君这就给你准备好了! 还记得我们之前安利的FVD帆软视觉素材平台吗?最近上新了一波模板和视觉素材,都是从实战…

Pytorch深度学习快速入门—LeNet简单介绍(附代码)

一、网络模型结构 LeNet是具有代表性的CNN,在1998年被提出,是进行手写数字识别的网络,是其他深度学习网络模型的基础。如下图所示,它具有连狙的卷积层和池化层,最后经全连接层输出结果。 二、各层参数详解 2.1 INPUT层…

C++之函数重载【详解】

C之函数重载【详解】 1. 函数重载的概念2. C支持函数重载的原理(名字修饰)2.1 前言2.2 函数名修饰规则2.3 VS下的命名修饰规则 重载函数是函数的一种特殊情况,为方便使用,C允许在同一中声明几个功能类似的同名函数,但是这些同名函数的形式参数…

HarmonyOS 音频开发指导:使用 AudioRenderer 开发音频播放功能

AudioRenderer 是音频渲染器,用于播放 PCM(Pulse Code Modulation)音频数据,相比 AVPlayer 而言,可以在输入前添加数据预处理,更适合有音频开发经验的开发者,以实现更灵活的播放功能。 开发指导…

Redis --- 安装教程

Redis--- 特性,使用场景,安装 安装教程在Ubuntu下安装在Centos7.6下安装Redis5 特性在内存中存储数据可编程的扩展能力持久化集群高可用快速 应用场景实时数据存储作为缓存或者Session存储消息队列 安装教程 🚀安装之前切换到root用户。 在…

Amazon图片下载器:利用Scrapy库完成图像下载任务

概述 本文介绍了如何使用Python的Scrapy库编写一个简单的爬虫程序,实现从Amazon网站下载商品图片的功能。Scrapy是一个强大的爬虫框架,提供了许多方便的特性,如选择器、管道、中间件、代理等。本文将重点介绍如何使用Scrapy的图片管道和代理…

mysql下载和安装,使用

先下载安装 官方下载 已下载备份软件 安装,一路下一步设置环境变量 4. 打开一个cmd,输入mysql -u root -p

dns服务

安装 apt install bind9 bind9-utils 监听53端口 udp53做解析用的 tcp53端口 创建配置文件 [rootrocky8 ~]# cd /var/named/ 注意权限,不然不生效 [rootrocky8 named]# touch luohw.org.zone [rootrocky8 named]# chmod 640 luohw.org.zone [rootrocky8 named]# c…

MySql数据库实现注册登录及个人信息查询的数据库设计

前言: 数据库使用的是mysql 以下创建的表,实现以下功能: 用户1,账号admin,年龄20,关联3件商品 用户2,账号admin2,年龄30,关联2件商品(没有商品和用户1重复) 用户3,账号admin3,年龄50,关联2件商品(这两件商品均是用户1的其中两种) 登录查询对应数据的实现 1.创建用户表Users,并…

【Java集合类面试十二】、HashMap为什么线程不安全?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:HashMap为什么线程不安全…