Qt学习笔记(二十二):QTabWidget 的常用方法


在界面上拉一个 Tab Widget,和下面的四个按钮控件:tab 中的控件随便拖的;

代码如下:

#include "widget.h"
#include "ui_widget.h"
#include <QTabWidget>
#include <QLabel>
#include <QDebug>
#include <QMessageBox>

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

    // 修改 tab 的文本
    ui->tabWidget->setTabText(0, "按钮控件");
    ui->tabWidget->setTabText(1, "单选框控件");
    
    // 设置图标
    ui->tabWidget->setTabIcon(0, QIcon(":/Image/butterfly.png"));
    ui->tabWidget->setIconSize(QSize(30, 30));
}

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

// 增加
void Widget::on_btnAdd_clicked()
{
//    int	addTab(QWidget * page, const QString & label)
//    int	addTab(QWidget * page, const QIcon & icon, const QString & label)
            
    QWidget *widget = new QWidget(this);
    
    QLabel *label = new QLabel(widget);
    label->setText("床前明月光");
    label->move(20, 30);
    label->setFont(QFont("宋体", 22));
    label->adjustSize();                // 设置控件自动改变,以适应内容大小
//    label->setScaledContents(true);   // 设置内容自动改变,以适应控件大小
    label->setBackgroundRole(QPalette::Dark);
    label->setForegroundRole(QPalette::Link);
    
    ui->tabWidget->addTab(widget, QIcon(":/Image/Luffy.png"), "新添加的项");
}

// 插入
void Widget::on_btnInsert_clicked()
{
//    int	insertTab(int index, QWidget * page, const QString & label)
//    int	insertTab(int index, QWidget * page, const QIcon & icon, const QString & label)
    
    QWidget *widget = new QWidget(this);
    
    QLabel *label = new QLabel(widget);
    label->setText("疑是地上霜");
    label->move(20, 30);
    label->setFont(QFont("宋体", 22));
    label->adjustSize();                // 设置控件自动改变,以适应内容大小
//    label->setScaledContents(true);   // 设置内容自动改变,以适应控件大小
    label->setBackgroundRole(QPalette::Dark);
    label->setForegroundRole(QPalette::Link);
    
    ui->tabWidget->insertTab(ui->tabWidget->count(), widget, QIcon(":/Image/OnePiece.png"), "新插入的项");
}

// 删除
void Widget::on_btnDelete_clicked()
{
    // 清除 tabwidget 上的所有内容
//    ui->tabWidget->clear();
    
    // 删除当前选中的 tab
    if (QMessageBox::question(this, "系统提示", "是否删除当前项?") == QMessageBox::Yes)
    {
        ui->tabWidget->removeTab(ui->tabWidget->currentIndex());
    }
}

// 查找
void Widget::on_btnFind_clicked()
{
    // 获取 tabwidget 的 tab 数量
    int count = ui->tabWidget->count();
    qDebug() << QString::number(count);
    
    // 获取当前选中 tab 的索引
    int index = ui->tabWidget->currentIndex();
    qDebug() << QString::number(index);
    
    // 获取指定 tab 的文本
    QString text = ui->tabWidget->tabText(0);
    qDebug() << text.toUtf8().data();
}

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值