QT QHBoxLayout 水平布局控件

news2024/12/23 15:37:04

        本文详细的介绍了QHBoxLayout控件的各种操作,例如:新建界面、添加控件、布局控件、显示控件、添加空白行、设置间距 、添加间距、设置位置、设置外边距、设置边距、添加固定宽度、方向上、方向下、方向左、方向右等等、 样式表等操作。

        实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。布局管理器可以完成两件事:自动调整控件的位置,包括控件之间的间距、对齐等;当用户调整窗口大小时,位于布局管理器内的控件也会随之调整大小,从而保持整个界面的美观。
        本系列QT全面详解文章目前共有二十三篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。
 

 本文作者原创,转载请附上文章出处与本文链接。

QT QHBoxLayout 水平布局控件目录

1 新建界面

2 控件布局

3 显示控件

4 添加固定宽度

5 添加空白行

6 设置间距

7 添加间距

8 设置位置

9 设置外边距

10 设置边距

11 方向上

12 方向下

13 方向左

14 方向右

15 其它文章


1 新建界面

2 控件布局

    QPushButton* pushButton1;
    QPushButton* pushButton2;
    QPushButton* pushButton3;
    QPushButton* pushButton4;
    QHBoxLayout *pHayout;

    pHayout = new QHBoxLayout();//水平布局

    pushButton1 = new QPushButton();        pushButton1->setText("pushButton_1");
    pushButton2 = new QPushButton();        pushButton2->setText("pushButton_2");
    pushButton3 = new QPushButton();        pushButton3->setText("pushButton_3");
    pushButton4 = new QPushButton();        pushButton4->setText("pushButton_4");

3 显示控件

    //向布局管理器中添加指定的 widget 控件。
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);

4 添加固定宽度

    //向布局管理器中添加指定的 widget 控件。
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addSpacing(50);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);
    ui->widget->setLayout(pHayout);

5 添加空白行

    //添加一个空白行,整个窗口中除了控件占用的区域外,其它区域可以由多个(≥0)空白行分摊,分摊比例取余于各个空白行设置的 stretch 参数的值。
    //strech 参数的默认值为 0,表示当窗口很小时,空白行可以不占据窗口空间。当窗口中包含多个 strech 值为 0 的空白行时,它们会平分窗口中的空白区域。
    pHayout->addStretch();

    //向布局管理器中添加指定的 widget 控件。
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);

6 设置间距

void MainWindow::on_pushButton_4_clicked()
{

    pHayout->setSpacing(150);
}

7 添加间距

void MainWindow::on_pushButton_5_clicked()
{
    pHayout->addStretch(50);

    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);

    pHayout->addStretch(150);
    pHayout->addWidget(pushButton3);

    pHayout->addStretch(10);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);
}

8 设置位置

void MainWindow::on_pushButton_6_clicked()
{
    //水平居左,垂直居上
    pHayout->addWidget(pushButton1,0,Qt::AlignLeft | Qt::AlignTop);
    //居右,居下
    pHayout->addWidget(pushButton2,0,Qt::AlignRight | Qt::AlignBottom);
    //居中
    pHayout->addWidget(pushButton3,0,Qt::AlignCenter );

    pHayout->addWidget(pushButton4);
}

9 设置外边距

void MainWindow::on_pushButton_7_clicked()
{
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);

    ui->widget->setLayout(pHayout);


    //    QMargins margins;
    //    margins.left();
    //    pLayout->setContentsMargins(margins);

    //与setMargin功能相同,但是可以将左、上、右、下的外边距设置为不同的值
    pHayout->setContentsMargins(10, 100, 10, 100 );

}

10 设置边距

void MainWindow::on_pushButton_8_clicked()
{
    pHayout->setMargin(100);
    pHayout->addWidget(pushButton1);
    pHayout->addWidget(pushButton2);
    pHayout->addWidget(pushButton3);
    pHayout->addWidget(pushButton4);
    ui->widget->setLayout(pHayout);
}

11 方向上

void MainWindow::on_pushButton_9_clicked()
{
    pHayout->setDirection(QBoxLayout::BottomToTop); //设置布局方向
    this->setLayout(pHayout);
}

12 方向下

void MainWindow::on_pushButton_10_clicked()
{
    pHayout->setDirection(QBoxLayout::TopToBottom);
    this->setLayout(pHayout);
}

13 方向左

void MainWindow::on_pushButton_11_clicked()
{
    pHayout->setDirection(QBoxLayout::LeftToRight);
    this->setLayout(pHayout);
}

14 方向右

void MainWindow::on_pushButton_12_clicked()
{
    pHayout->setDirection(QBoxLayout::RightToLeft);
    this->setLayout(pHayout);
}

15 其它文章

QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

QT QComboBox使用详解_双子座断点的博客-CSDN博客

QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客


QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽


QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解_双子座断点的博客-CSDN博客_qslider设置步长

QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客

QT QCalendarWidget控件 使用详解_双子座断点的博客-CSDN博客
QT QStackedWidget 控件 使用详解_双子座断点的博客-CSDN博客

(1条消息) QT QVBoxLayout 垂直布局控件_双子座断点的博客-CSDN博客

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

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

相关文章

无距离障碍:远程桌面Ubuntu实现全球办公【内网穿透】

目录 前言 视频教程 1. ubuntu安装XRDP 2.局域网测试连接 3. Ubuntu安装cpolar内网穿透 4.cpolar公网地址测试访问 5.固定域名公网地址 [TOC] 转载自远程穿透文章:Windows通过RDP异地远程桌面Ubuntu【内网穿透】 前言 XRDP是一种开源工具,它允许…

范数详解-torch.linalg.norm计算实例

文章目录 二范数F范数核范数无穷范数L1范数L2范数 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 范数是一种数学概念,可以将向量或矩阵映射到非负实数上,通常被…

Python使用pytorch深度学习框架构造Transformer神经网络模型预测红酒分类例子

1、红酒数据介绍 经典的红酒分类数据集是指UCI机器学习库中的Wine数据集。该数据集包含178个样本,每个样本有13个特征,可以用于分类任务。 具体每个字段的含义如下: alcohol:酒精含量百分比 malic_acid:苹果酸含量&a…

Python之硬汉巴特勒

一、前言 2023年4月27日,NBA季后赛热火4:1淘汰雄鹿,实现黑八。全NBA联盟最硬气的男人——巴特勒,再次向全世界证明了他是NBA最硬气的男人。上一场刚狂轰56分大比分逆转雄鹿,这一场又是带领球队打出了血性,超高难度绝平…

快速搭建简单图床 - 远程访问本地搭建的EasyImage图床【内网穿透】

文章目录 1.前言2. EasyImage网站搭建2.1. EasyImage下载和安装2.2. EasyImage网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 一个好的图床,是网站或者文章图片能稳定显示的关键,…

驱动管理软件推荐

最近发现电脑右下角的任务栏中有一个叹号图标,如下: 点进去之后发现是Windows自家的安全中心的内核隔离出现了点问题,内核隔离功能打不开 点击“查看不兼容的驱动程序”,发现是一些驱动作祟 我的电脑中显示了好多不兼容的驱动程序…

跟着我学习 AI丨语音识别:将语音转为数字信号

语音识别是一种人工智能技术,其主要目的是将人类说话转化为计算机可以理解的信息。语音识别技术的应用非常广泛,包括智能家居、汽车导航、语音搜索、人机交互、语音翻译等。 语音识别的技术原理 语音识别的技术原理是将人类的语音信号转化为数字信号。这…

『python爬虫』06. 数据解析之re正则解析(保姆级图文)

目录 1. 什么是re解析2. 正则规则元字符量词匹配模式测试 3. 正则案例4. re模块的使用4.1 findall: 匹配字符串中所有的符合正则的内容4.2 finditer: 匹配字符串中所有的内容[返回的是迭代器]4.3 search, 找到一个结果就返回, 返回的结果是match对象4.4 match 从头开始匹配&…

Windows forfiles命令详解,Windows按时间搜索特定类型的文件。

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 forfiles 一、结果输出格式二、按时间搜索三、搜索指定类型文件四、批量删除文件 forfile…

Ubuntu远程SSH连接与远程桌面连接

目录 一、远程桌面连接 二、远程SSH连接 1、安装客户端 2、安装服务端 3、SSH客户端和服务端的区别 一、远程桌面连接 首先需要在Ubuntu里进行些设置,点击界面右上角的控制区,选择设置选项; 弹出界面进入网络中,点击设置图…

【致敬未来的攻城狮计划】— 连续打卡第十八天:FSP固件库开发GPT — PWM输出波形 — LED呼吸灯

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

Rust开发环境搭建到运行第一个程序HelloRust

一、Rust语言 1.1 Rust语言介绍 Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。 Rust 语言由 Mozilla 开发,最早发布于2014年 9月。Rust 的编…

《ADC和DAC的基本架构》----学习记录(二)

2 模数转换器 2.1 ADC架构I:Flash转换器 2.1.1 比较器:1位ADC 转换开关是 1 位 DAC,而比较器是 1 位 ADC,如图所示。如果输入超过阈值,输出即会具有一个逻辑值,而输入低于阈值时输出又会有另一个值。此外…

寻找2020+跳蚱蜢(蓝桥杯JAVA解法)

目录 寻找2020:用户登录 题目描述 运行限制 跳蚱蜢:用户登录 题目描述 运行限制 寻找2020:用户登录 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝有一个数字矩阵&a…

使用ChatGPT生成了十种排序算法

前言 当前ChatGPT非常火爆,对于程序员来说,ChatGPT可以帮助编写很多有用的代码。比如:在算法的实现上,就可以替我们省很多事。所以,小试牛刀一下,看看ChatGPT生成了排序算法怎么样? 简介 排序…

网站搭建之配置tomcat

【 本次配置架构】 【安全配置】 1.删除后台登录 在tomcat安装目录下的/conf文件下编辑tomcat-users.xml,删除里面带有标签的内容块,默认这部分是被注释了的。注释了任然会显示后台登录,需要彻底删除。 进入末行模式,也就是使用vim进去后&…

Flask开发之环境搭建

目录 1、安装flask 2、创建Flask工程 ​编辑 3、初始化效果 4、运行效果 5、设置Debug模式 6、设置Host 7、设置Port 8、在app.config中添加配置 1、安装flask 如果电脑上从没有安装过flask,则在命令行界面输入以下命令: pip install flask 如果电…

【MFAC】基于偏格式动态线性化的无模型自适应控制(Matlab代码)

例题来源:侯忠生教授的《无模型自适应控制:理论与应用》(2013年科学出版社)。 👉对应书本 4.3 单输入单输出系统(SISO)偏格式动态线性化(PFDL)的无模型自适应控制(MFAC) 上一篇博客介绍了基于紧格式动态线性化的无模型…

C++每日一练:打家劫室(详解动态规划法)

文章目录 前言一、题目二、分析三、代码总结 前言 这题目出得很有意思哈,打劫也是很有技术含量滴!不会点算法打劫这么粗暴的工作都干不好。 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 题目名称: 打家…

实现Newton方法的最小化函数(pytorch)

首先,我们要明确需求 def newton(theta, f, tol 1e-8, fscale1.0, maxit 100, max_half 20) ● theta是优化参数的初始值的一个向量。 ● f是要最小化的目标函数。该函数应将PyTorch张量作为输入,并返回一个张量。 ● tol是收敛容忍度。 ● fscale 粗…