Qt 容器类控件

Group Box

使用 QGroupBox 实现一个带有标题的分组框可以把其他的控件放到里面作为一组,这样看起来能更好看一点.

在这里插入图片描述

核心属性

属性说明
title分组框的标题
alignment分组框内部内容的对齐方式
flat是否是 “扁平” 模式
checkable是否可选择.
设为 true,则在 title 前方会多出一个可勾选的部分.
checked描述分组框的选择状态 (前提是 checkable 为 true)

分组框只是一个用来"美化界面"这样的组件,并不涉及到用户交互和业务逻辑.属于"锦上添花"

代码示例:给麦当劳案例加上分组框

(1) 在界面上创建三个分组框(Group Box),且在分组框内部创建下拉框(ComboBox)和微调框(SpinBox)

在这里插入图片描述

注意:在复制粘贴控件的时候, 一定要先选中对应的父控件, 再粘贴.

(2) 编写 widget.cpp,添加初始化下拉框的代码

Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("巨⽆霸");ui->comboBox->addItem("⻨辣鸡腿堡");ui->comboBox_2->addItem("薯条");ui->comboBox_2->addItem("⻨辣鸡翅");ui->comboBox_3->addItem("可乐");ui->comboBox_3->addItem("雪碧");
}

(3) 运行程序, 观察效果

在这里插入图片描述

Tab Widget

使用 QTabwidget 实现一个带有标签页的控件,可以往里面添加一些 widget。进一步的就可以通过标签页来切换。

核心属性

属性说明
tabPosition标签页所在的位置
North:上方
South:下方
West:左侧
East:右侧
currentIndex当前选中了第几个标签页 (从 0 开始计算)
currentTabText当前选中的标签页的文本
currentTabName当前选中的标签页的名字
currentTabIcon当前选中的标签页的图标
currentTabToolTip当前选中的标签页的提示信息
tabsCloseable标签页是否可以关闭
movable标签页是否可以移动

核心信号

属性说明
currentChanged(int)在标签页发生切换时触发, 参数为被点击的选项卡编号.
tabBarClicked(int)在点击选项卡的标签条的时候触发. 参数为被点击的选项卡编号.
tabBarDoubleClicked(int)在双击选项卡的标签条的时候触发. 参数为被点击的选项卡编号
tabCloseRequest(int)在标签页关闭时触发. 参数为被关闭的选项卡编号

代码示例: 使用标签页管理多组控件

(1) 在界面上创建一个 QTabwidget,和两个按钮。按钮的 objectNamepushButton_addpushButton_remove

在这里插入图片描述

注意

  • QTabWidget 中的每个标签页都是一个 QWidget
  • 点击标签页, 就可以直接切换.
  • 右键 QTabWidget , 可以添加标签页或者删除标签页.

(2) 编写 widget.cpp,进行初始化,给标签页中放个简单的 label

注意新创建的 label 的父元素,是 ui->tab 和 ui->tab_2。Qt 中使用父子关系决定该控件“在哪里"

QLabel* label = new QLabel(ui->tab);
label->setText("标签页1");
label->resize(100, 50);
QLabel* label2 = new QLabel(ui->tab_2);
label2->setText("标签页2");
label2->resize(100, 50);

(3) 编写按钮的 slot 函数

  • 使用 count() 获取到标签页的个数.
  • 使用 addTab 新增标签页
  • 使用 removeTab 删除标签页
  • 使用 currentIndex 获取到当前标签页的下标.
  • 使用 setCurrentIndex 切换当前标签页
void Widget::on_pushButton_add_clicked()
{// 获取当前有⼏个标签⻚了int count = ui->tabWidget->count();// 创建新的 widgetQWidget* w = new QWidget();ui->tabWidget->addTab(w, QString("Tab ") + QString::number(count + 1));// 给 widget 中添加 labelQLabel* label = new QLabel(w);label->setText(QString("标签⻚") + QString::number(count + 1));label->resize(100, 50);// 选中这个新的标签⻚ui->tabWidget->setCurrentIndex(count);
}void Widget::on_pushButton_remove_clicked()
{// 获取当前标签⻚的下标int index = ui->tabWidget->currentIndex();// 删除这个标签⻚ui->tabWidget->removeTab(index);
}

(4) 编写 QTabWidget 的 currentChanged 函数

void Widget::on_tabWidget_currentChanged(int index)
{qDebug() << "当前选中标签⻚为: " << index;
}

(5) 运行程序, 观察效果

  • 点击新建标签页, 可以创建出新的标签.
  • 点击删除当前标签页, 可以删除标签.
  • 切换标签页时, 可以看到 qDebug 打印出的标签页编号.

在这里插入图片描述

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

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

相关文章

基于nodejs+vue班级管理系统的设计与实现-flask-django-python-php

随着电子技术的普及和快速发展&#xff0c;线上管理系统被广泛的使用&#xff0c;有很多事业单位和商业机构都在实现电子信息化管理&#xff0c;班级管理系统也不例外&#xff0c;由比较传统的人工管理转向了电子化、信息化、系统化的管理。随着互联网技术的高速发展&#xff0…

Unity Toggle处理状态变化事件

Toggle处理状态变化事件&#xff0c;有两个方法。 法一、通过Inspector面板设置 实现步骤&#xff1a; 在Inspector面板中找到Toggle组件的"On Value Changed"事件。单击""按钮添加一个新的监听器。拖动一个目标对象到"None (Object)"字段&am…

【黑马头条】-day01环境搭建SpringBoot-Cloud-Nacos

文章目录 1 环境搭建及简介2 项目介绍2.1 应用2.2 业务说明2.3 技术栈2.4 收获2.5 大纲 3 Nacos准备3.1 安装Nacos 4 初始工程搭建4.1 环境准备4.1.1 导入项目4.1.2 设置本地仓库4.1.3 设置项目编码格式 4.2 全局异常4.2.1 自动装配 4.3 工程主体结构 5 登录功能开发5.1 需求分…

有什么ai写作神器?6个AI智能写作助手分享给你

随着人工智能技术的不断发展&#xff0c;自动生成文章的软件也逐渐成为了写作领域的一项重要工具。下面将介绍国内常用的6款AI写作助手&#xff0c;来看看它们的有什么不一样的地方。 爱制作AI写作 无需下载&#xff0c;直接在线使用&#xff0c;支持手机电脑操作&#xff0c;…

Android14音频进阶:AudioFlinger究竟如何混音?(六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

Mac版Jmeter安装与使用模拟分布式环境

Mac版Jmeter安装与使用&模拟分布式环境 1 安装Jmeter 1.1 安装Java环境 国内镜像地址&#xff1a;https://repo.huaweicloud.com/java/jdk/11.0.29/jdk-11.0.2_osx-x64_bin.dmg 下载dmg后&#xff0c;双击进行安装。 配置环境变量&#xff1a; # 1 打开环境变量配置文件…

软考 网工 每日学习打卡 2024/3/18

学习内容 第8章 网络安全 本章主要讲解网络安全方面的基础知识和应用技术。针对考试应该掌握诸如数据加密、报文认 证、数字签名等基本理论&#xff0c;在此基础上深入理解网络安全协议的工作原理&#xff0c;并能够针对具体的 网络系统设计和实现简单的安全解决方案。 本章共有…

深入理解Java并发工具包中的CyclicBarrier

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在Java的并发编程世界中&#xff0c;协调和管理多个线程的执行是一项复杂而关键的任务。为了简化这一挑战&#xff0c;Java并发包…

三种简单方法教你手机mp4怎么转换成mp3!

在日常生活中&#xff0c;我们经常会遇到想要将手机上的MP4视频转换为MP3音频的情况。可能是想要提取音频内容&#xff0c;例如歌曲或录音&#xff0c;方便在其他设备上播放或分享&#xff1b;也可能是为了节省手机存储空间&#xff0c;将视频文件转换为更小的音频文件。 无论…

【HTTP完全注解】看了还搞不懂缓存你直接来打我

HTTP缓存 HTTP缓存是一种HTTP的性能优化机制&#xff0c;它是为了提高Web页面加载速度和减轻服务器负载而设计的&#xff0c;通过这种机制&#xff0c;Web浏览器或其他客户端可以存储先前获取的Web资源的副本&#xff0c;并在后续请求相同资源时使用这些副本&#xff0c;而不是…

Java学习笔记21——使用JDBC访问MySQL数据库

JDBC&#xff08;Java Database Connectivity&#xff0c;Java数据库连接&#xff09;是应用程序编程借口&#xff08;API&#xff09;&#xff0c;描述了一套访问关系数据库的标准Java类库。可以在程序中使用这些API&#xff0c;连接到关系数据库&#xff0c;执行SQL语句&…

【技术栈】Redis 中的事务及持久化方式

SueWakeup 个人主页&#xff1a; SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;保留赤子之心也许是种幸运吧 本文封面由 凯楠&#x1f4f8; 友情提供 目录 相关传送门 1. Redis 中的事务 2. Redis 持久化 2.1 RDB 方式 2.1.1 RDB手动 2.1.2 RDB自动 2.…

跨越时空的纽带:探索Facebook如何连接人与人

引言 Facebook作为全球最大的社交媒体平台之一&#xff0c;已经成为了人们日常生活中不可或缺的一部分。它不仅仅是一个社交网络&#xff0c;更是连接人与人、人与世界的纽带。在这篇文章中&#xff0c;我们将深入探讨Facebook如何跨越时空&#xff0c;连接人与人之间的关系&a…

Flutter 初始WidgetState 简单应用案例分析

本系列文章主要整理Flutter的知识汇总&#xff0c;由浅入深&#xff0c;从Widget的搭建到其中的原理。本文还是围绕Widget在开发中应用和理解。 关于Flutter环境配置和首次创建可以参考前面文章。链接如下&#xff1a; Flutter 安装部署与认识Dart语言 Flutter 使用AndroidS…

Spring Cloud 整合 GateWay

目录 第一章 微服务架构图 第二章 Spring Cloud整合Nacos集群 第三章 Spring Cloud GateWay 第四章 Spring Cloud Alibaba 整合Sentinel 第五章 Spring Cloud Alibaba 整合SkyWalking链路跟踪 第六章 Spring Cloud Alibaba 整合Seata分布式事务 第七章 Spring Cloud 集成Auth用…

多模匹配算法AC算法和单模匹配算法BM

多模匹配算法之AC算法详解 算法概述  Aho-Corasick算法 - 这是一种字典匹配算法,它用于在输入文本中查找字典中的字符串。时间复杂度是线性的。该算法应用有限自动机巧妙地将字符比较转化为了状态转移。  该算法的基本思想 − 在预处理阶段,AC自动机算法建立…

Springboot通过注解+切面实现接口权限校验

Springboot通过注解&#xff0b;切面实现接口权限校验 主要说一下在对接口请求时&#xff0c;如何用注解切面去拦截校验当前登录用户是否有访问权限 1.首先创建注解 HasPermission &#xff0c;跟普通注解创建方式基本一致 Retention(RetentionPolicy.RUNTIME) Target(Element…

小火星露谷管理器 报错:“你似乎没有安装Edge的webview2”

错误 解决办法 你可以到这个地方下载安装webview2 https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/?formMT00IS

2024年亚洲图像处理趋势会议(ATIP 2024)即将召开!

2024年亚洲图像处理趋势会议&#xff08;简称&#xff1a;ATIP 2024&#xff09;将于2024年6月21日至23日在英国伦敦举行。在会议上我们将与相关领域的研究人员和知名专业人士共同讨论关于图像处理学科的最新研究方向及进展&#xff0c;评估当前最先进的技术和未来研究的关键领…

Tomcat(Win+Linux)安装教程

Windows环境安装 Tomcat安装及配置教程主要分为四步&#xff1a; 步骤一&#xff1a;确认自己是否已 安装JDK&#x1f50d; 步骤二&#xff1a;下载安装Tomcat 步骤三&#xff1a;Tomcat配置环境变量 步骤四&#xff1a;验证Tomcat配置是否成功 OK&#xff0c;我们开始&#x…