69常用控件_QTabWidget的使用

使⽤ 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 , 和两个按钮.
按钮的 objectName pushButton_add pushButton_remove

 

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

2) 编写 widget.cpp, 进⾏初始化, 给标签⻚中放个简单的 label
注意新创建的 label 的⽗元素, 是 ui->tab ui->tab_2 . Qt 中使⽤⽗⼦关系决定该控件 "在
哪⾥".
3) 编写按钮的 slot 函数
使⽤ count() 获取到标签⻚的个数.
使⽤ addTab 新增标签⻚.
使⽤ removeTab 删除标签⻚.
使⽤ currentIndex 获取到当前标签⻚的下标.
使⽤ setCurrentIndex 切换当前标签⻚.
4) 编写 QTabWidget currentChanged 函数
5) 运⾏程序, 观察效果
点击新建标签⻚, 可以创建出新的标签.
点击删除当前标签⻚, 可以删除标签.
切换标签⻚时, 可以看到 qDebug 打印出的标签⻚编号.
第一个标签页,name叫做"tab"
此时代码中就可以通过ui->tab方式来访问到这个标签页
#include "widget.h"
#include "ui_widget.h"
#include <QLabel>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 先在每个标签页中, 添加一个 Label
    QLabel* label1 = new QLabel(ui->tab);
    label1->setText("标签页1");
    label1->resize(100, 50);

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

}

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


void Widget::on_pushButton_clicked()
{
    // 使用 addTab 方法来创建新的标签页.
    // 参数1 要指定一个 QWidget.
    // 参数2 指定这个标签页的 text (标题), 此处标题就叫做 Tab + 数字
    int count = ui->tabWidget->count();
    QWidget* w = new QWidget();
    ui->tabWidget->addTab(w,QString("tab")+ QString::number(count + 1));
    // 添加一个 QLabel 显示内容
    QLabel* label = new QLabel(w);
    label->setText("标签页" + QString::number(count + 1));
    label->resize(100, 50);
    // 设置新标签页被选中
    ui->tabWidget->setCurrentIndex(count);
}



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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值