当前位置: 首页 > article >正文

Qt容器类控件——QGroupBox和QTabWidget

文章目录

    • QGroupBox
    • 又来点餐
    • QTabWidget
    • 使用演示

QGroupBox

容器类控件即里面可以容纳其他的控件

QGroupBox叫做分组框,可以把其他控件放在里面作为一组

QGroupBox的存在,只是为了让界面更好看一点,并不实现实质性的功能。

当界面较复杂的时候,分组框就可以将具有关联关系的控件,组织到一起。

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

又来点餐

界面属性设置:

image-20240916164421095

勾选“扁平化”和是否可选择:

image-20240916164701727

QTabWidget

QTabWidget实现一个带有标签页的控件,可以往里面添加widget。然后就可以通过标签页来切换。

核心属性

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

核心信号:

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

使用演示

图形化示例:

image-20240916165857641

创建一个程序,带有一个TabWidget作为标签页,设置2个按钮,可以新增和删除标签页

代码示例:

#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->tabWidget->setTabsClosable(true);
    //标签页当中,添加一个label
    QLabel* label1 = new QLabel(ui->tab);
    label1->setText("标签页1");
    label1->resize(100, 100);

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

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    //addTab创建
    //参数1   指定一个QWidget
    //参数2   指定标签页的标题
    int count = ui->tabWidget->count();
    QWidget* w = new QWidget();
    ui->tabWidget->addTab(w, QString("Tab") + QString::number(count+1));

    QLabel* label = new QLabel(w);
    label->setText(QString("标签页") + QString::number(count+1));
    label->resize(100, 100);

    //新增完毕之后,设置新增为选中
    ui->tabWidget->setCurrentIndex(count);
}

void Widget::on_pushButton_2_clicked()
{
    //获取当前标签页下标
    int index = ui->tabWidget->currentIndex();
    //删除标签页
    ui->tabWidget->removeTab(index);
}

void Widget::on_tabWidget_tabCloseRequested(int index)
{
    ui->tabWidget->removeTab(index);
}

GIF 2024-9-16 17-51-22


http://www.kler.cn/news/314285.html

相关文章:

  • 计算机网络(月考一知识点)
  • Windows安装Oracle11gR2(图文教程)
  • Docker部署ddns-go教程(包含完整的配置过程)
  • 基于 K8S kubernetes 搭建 安装 EFK日志收集平台
  • 深度学习实战93-基于BiLSTM-CRF模型的网络安全知识图谱实体识别应用
  • CTC loss 博客转载
  • C++(2)进阶语法
  • 职业技能大赛-自动化测试笔记分享-2
  • 长亭WAF绕过测试
  • Spring AI Alibaba,阿里的AI Java 开发框架
  • 【Python篇】PyQt5 超详细教程——由入门到精通(终篇)
  • C语言CRC16_CCITT_FALSE函数法和查表法实现
  • ArcGIS10.2/10.6安装包下载与安装(附详细安装步骤)
  • Unity坐标系求向量的模长
  • 【深度学习|可视化】如何以图形化的方式展示神经网络的结构、训练过程、模型的中间状态或模型决策的结果??
  • 常用卫星学习
  • sql语句在mysql中的执行过程
  • 大数据-143 - ClickHouse 集群 SQL 超详细实践记录!
  • 运维工程师面试整理-团队协作
  • 大数据最新面试题(持续更新)
  • 入门sentinel
  • 焦化行业的变革力量:智能巡检机器人
  • 浙大数据结构:05-树8 File Transfer
  • 记录一次显卡驱动安装
  • 如何在kotlin中给空字符串(””)和null值设置默认值问题?
  • WPF 控件数据源绑定
  • 大语言模型应用的业务架构点
  • Transformer模型-7- Decoder
  • MATLAB绘图基础8:双变量图形绘制
  • Day25笔记-普通文件读写with上下文二进制文件csv文件