[Qt]常用控件介绍-容器类控件-QGroupBox、QTabWidget

ops/2025/1/19 23:45:08/

目录

1.容器类控件介绍

2.GroupBox控件

核心属性

3.QTableWidget

核心属性

核心信号

细节

使用案例


1.容器类控件介绍

        容器类控件指的是一个控件里面包含了多个我们之间学过的那种对象,而多元素控件则是,一个控件中是由多个Item对象构成的。对于容器类控件内部的控件,这些内部的控件的父元素就不在是this了,而是这些容器类控件了。

2.GroupBox控件

        该控件是一个带有标题的分组框。这个控件只是为了让界面看起来好看一些,当一个界面比较复杂的时候,会包含很多个控件,分组框就可以把具有关联关系的控件,组织在一起。

核心属性
属性说明
title分组框的标题
alignment内部内容的对齐方式
flat是否是扁平模式
checkable

是否可以选中

为true的时候,title前面会多一个可勾选的部分

checked

描述分组框的选中状态,但前提是checkable为true

如果说设置该状态后,如果不选中的话,内部控件不能进行操作

3.QTableWidget

        该控件是一个带有标签页的控件

核心属性
属性说明
tabPosition

标签页所在的方位

North上方,South下方,West左侧,East右侧

currentIndex当前选中了第几个标签页(从0开始计算)
currentTabText当前选中的标签页的文本
currentTabName当前选中的标签页的名字
currentTabIcon当前选中的标签页的图标
currentTabToolTip当前选中的标签页的提示信息
tabsCloseable标签页是否可以关闭
moveable标签页是否可以移动
核心信号
信号说明
currentChanged(int)在标签页发生切换时候触发,参数为选项卡的编号
tabBarCkicked(int)在点击选项卡标签页的时候触发
tabBarDoubleClicked(int)在双击选项卡标签页的时候触发
tabCloseRequest(int)在标签页关闭的时候触发
细节
  • 对于TabWidget内部的每一个标签页都是一个QWidget,所以我们如果在代码中添加标签页内部的控件的时候,需要将对象挂载到标签页的对象树上,每一个标签页也是有名字的,可以通过ui->xxxx访问的到。也是相当于指明了控件创建到那个标签页当中了。
  • addTab、removeTab分别是添加和删除标签页的函数,addTab的参数有两个,第一个是要传入的QWidget对象,第二个是标签页的名称,removeTab则简单,直接传入标签页的下标即可。
  • 对于新增标签页的时候,也不需要将标签页挂载到对象树上,也是该QTableWidget释放的时候,会调用析构函数,将所有标签页QWidget对象释放的。
  • 对于tableCloseable属性,如果为true的话,会在标签页名称的后面带有一个关闭按键,但这里并不是真正的关闭,而是会发出tabCloseRequest信号,具体怎么处理,需要我们自己去定义。
使用案例

        使用两个按钮来控制该控件的增加和删除标签页

#include "widget.h"
#include "ui_widget.h"
#include <QLabel>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//初始化标签页QLabel *label1 = new QLabel(ui->tab);label1->setText("这是标签页1");label1->resize(200, 100);QLabel *label2 = new QLabel(ui->tab_2);label2->setText("这是标签页2");label2->resize(200, 100);
}Widget::~Widget()
{delete ui;
}//添加标签页
void Widget::on_pushButton_clicked()
{//获取标签页数量int count = ui->tabWidget->count();//创建标签页对象QWidget* tab = new QWidget();ui->tabWidget->addTab(tab, QString("Tab ") + QString::number(count + 1));//并选中这个新的标签页ui->tabWidget->setCurrentIndex(count);
}//删除标签页
void Widget::on_pushButton_2_clicked()
{//获取选中的下标int index = ui->tabWidget->currentIndex();//删除ui->tabWidget->removeTab(index);
}


http://www.ppmy.cn/ops/151504.html

相关文章

从AI生成内容到虚拟现实:娱乐体验的新边界

引言 在快速发展的科技时代&#xff0c;娱乐行业正经历一场前所未有的变革。传统的娱乐方式正与先进技术融合&#xff0c;创造出全新的沉浸式体验。从AI生成的个性化内容&#xff0c;到虚拟现实带来的身临其境的互动场景&#xff0c;科技不仅改变了我们消费娱乐的方式&#xf…

ORB-SLAM3 RGBD摄像头

一、所需的环境 python2.7、Opencv3.2、Pangolin0.5、eigen3.3.1 Ubuntu18.04、ros版本&#xff1a;melodic 二、安装astro pro plus驱动 1、安装环境所需要依赖 sudo apt-get install ros-melodic-serial ros-melodic-bfl ros-melodic-mbf-msgs ros melodic-pointcloud-t…

js使用qrcode与canvas生成带logo的二维码

qrcode库 文档 https://www.npmjs.com/package/qrcode 安装 npm i qrcode 使用 errorCorrectionLevel: H // 容错率&#xff08;H是最高&#xff0c;其它看文档&#xff09; width: 200 // 大小 margin: 2 // 边距 import QRCode from qrcodeconst testFn async () > {c…

pix2pix mmgeneration通用场景黑白图片上色模型训练,Docker

https://www.dong-blog.fun/post/1924 对于机器学习和深度学习感兴趣的读者来说,OpenMMLab 提供的 MMGeneration 库是一个绝佳的选择。最近我在阅读一篇关于 MMGeneration 的博客文章,尤其是在使用 Docker 环境进行模型和算法测试方面,受益匪浅。以下是我对目标博客内容的概…

金仓Kingbase客户端KStudio报OOM:Java heap space socketTimeout

找到Kingbase\ES\V8\KESRealPro\V008R006C006B0021\ClientTools\guitools\KStudio\KStudio.ini 修改JVM参数&#xff1a; 默认值&#xff1a; -Xms512m -Xmx1024m 改为&#xff1a; -Xms1024m -Xmx2048m -XX:MaxPermSize512m SQL查询报错&#xff1a;An I/O error occurred …

浅谈 JVM

JVM 内存划分 JVM 内存划分为 四个区域&#xff0c;分别为 程序计数器、元数据区、栈、堆 程序计数器是记录当前指令执行到哪个地址 元数据区存储存储的是当前类加载好的数据&#xff0c;包括常量池和类对象的信息&#xff0c;.java 编译之后产生 .class 文件&#xff0c;运…

调试Hadoop源代码

个人博客地址&#xff1a;调试Hadoop源代码 | 一张假钞的真实世界 Hadoop版本 Hadoop 2.7.3 调试模式下启动Hadoop NameNode 在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中设置NameNode启动的JVM参数&#xff0c;如下&#xff1a; export HADOOP_NAMENODE_OPTS"-Xdeb…

tui-editor报错

原因&#xff1a; 原先的tui-editor插件&#xff08;富文本编辑器插件&#xff09;换了个名称&#xff0c;现在已经更名为toast-ui/editor因此安装不了&#xff0c;从而报错&#xff01; 解决&#xff1a; 1.首先将package.json中的tui-editor那一行修改为 "toast-ui/…