【十八】【QT开发应用】标签页QTabWidget的常见用法

#include "widget.h" // 包含自定义的widget头文件
#include <QHBoxLayout> // 包含QHBoxLayout头文件,用于水平布局
#include <QTabWidget> // 包含QTabWidget头文件,用于创建标签页控件
#include <QDebug> // 包含QDebug头文件,用于调试输出

widget::widget(QWidget *parent) // widget类的构造函数
    : QWidget(parent) // 调用基类QWidget的构造函数,传入父组件
{
    ui.setupUi(this); // 通过ui对象设置用户界面

    QHBoxLayout* HLayout = new QHBoxLayout(this); // 创建一个水平布局对象,并设置当前widget为其父组件

    QTabWidget* pTabWidget = new QTabWidget(this); // 创建一个标签页控件,并设置当前widget为其父组件
    pTabWidget->setTabsClosable(true); // 设置标签页可关闭
    pTabWidget->setMovable(true); // 设置标签页可移动
    pTabWidget->setTabPosition(QTabWidget::North); // 设置标签页位置在上方
    pTabWidget->setTabShape(QTabWidget::Triangular); // 设置标签页形状为三角形

    QWidget* widget1 = new QWidget; // 创建一个QWidget对象
    widget1->setStyleSheet("background-color:rgb(54,54,54);"); // 设置widget1的背景颜色为深灰色

    QWidget* widget2 = new QWidget; // 创建第二个QWidget对象
    widget2->setStyleSheet("background-color:rgb(54,154,54);"); // 设置widget2的背景颜色为绿色

    QWidget* widget3 = new QWidget; // 创建第三个QWidget对象
    widget3->setStyleSheet("background-color:rgb(54,54,154);"); // 设置widget3的背景颜色为蓝色

    pTabWidget->insertTab(0, widget1, "tab1"); // 将widget1作为第一个标签页添加到标签页控件中
    pTabWidget->insertTab(1, widget2, "tab2"); // 将widget2作为第二个标签页添加
    pTabWidget->insertTab(2, widget3, "tab3"); // 将widget3作为第三个标签页添加

    // pTabWidget->setTabVisible(2, false); // 注释掉的代码,用于隐藏第三个标签页,当前未启用
    pTabWidget->setTabToolTip(2, "this tap 2"); // 设置第三个标签页的工具提示

    HLayout->addWidget(pTabWidget); // 将标签页控件添加到水平布局中

    // 连接标签页控件的currentChanged信号到lambda表达式定义的槽函数,用于处理当前标签页变化事件
    connect(pTabWidget, &QTabWidget::currentChanged, [=](int index) {
        qDebug() << "index=" << index;
    });

    // 连接tabBarDoubleClicked信号到槽函数,用于处理标签栏双击事件
    connect(pTabWidget, &QTabWidget::tabBarDoubleClicked, [=](int index) {
        qDebug() << "tabBarDoubleClicked index=" << index;
    });

    // 连接tabBarClicked信号到槽函数,用于处理标签栏点击事件
    connect(pTabWidget, &QTabWidget::tabBarClicked, [=](int index) {
        qDebug() << "tabBarClicked index=" << index;
    });

    // 连接tabCloseRequested信号到槽函数,用于处理标签页关闭请求事件
    connect(pTabWidget, &QTabWidget::tabCloseRequested, [=](int index) {
        qDebug() << "tabCloseRequested index=" << index;
        pTabWidget->removeTab(index); // 响应关闭请求,删除指定索引的标签页
    });
}

widget::~widget() // widget类的析构函数
{}

在这里插入图片描述

复盘

setTabsClosable 设置标签页是否可以被关闭

setTabsClosable 是 Qt 框架中 QTabWidget 类的一个成员函数,它用于设置标签页是否可以被关闭。当这个属性被设置为 true 时,每个标签页的右上角会显示一个关闭按钮,用户可以通过点击这个按钮来关闭相应的标签页。

setMovable 允许用户通过拖拽来改变标签页的顺序

setMovable 是 Qt 框架中 QTabWidget 类的一个成员函数,它的作用是允许用户通过拖拽来改变标签页的顺序。当 setMovable 设置为 true 时,用户可以通过鼠标拖动标签页到新的位置,从而改变标签页的顺序。

setTabPosition 设置标签页的位置

setTabPosition 是 Qt 框架中 QTabWidget 类的一个成员函数,用于设置标签页的位置。这个函数允许开发者控制标签页是在窗口的上方、下方、左侧还是右侧显示。

  • 设置标签页在上方:
    使用 QTabWidget::North 作为参数,可以将标签页设置在窗口的上方。

    pTabWidget->setTabPosition(QTabWidget::North);
    
  • 设置标签页在下方:
    使用 QTabWidget::South 作为参数,可以将标签页设置在窗口的下方。

    pTabWidget->setTabPosition(QTabWidget::South);
    
  • 设置标签页在左侧:
    使用 QTabWidget::West 作为参数,可以将标签页设置在窗口的左侧。

    pTabWidget->setTabPosition(QTabWidget::West);
    
  • 设置标签页在右侧:
    使用 QTabWidget::East 作为参数,可以将标签页设置在窗口的右侧。

    pTabWidget->setTabPosition(QTabWidget::East);
    

setTabShape 设置标签页的形状

setTabShape 是 Qt 框架中 QTabWidget 类的一个成员函数,用于设置标签页的形状。这个函数允许开发者自定义标签页的外观,以适应不同的设计需求和用户偏好。

  • 设置为普通矩形标签页:
    使用 QTabWidget::Rounded 作为参数,可以将标签页设置为带有圆角的矩形形状。

    pTabWidget->setTabShape(QTabWidget::Rounded);
    
  • 设置为三角形标签页:
    使用 QTabWidget::Triangular 作为参数,可以将标签页设置为三角形形状。这种形状通常用于需要更紧凑布局的界面。

    pTabWidget->setTabShape(QTabWidget::Triangular);
    

insertTab 添加一个新的标签页

insertTab 是 Qt 框架中 QTabWidget 类的一个成员函数,用于向标签页控件中添加一个新的标签页。这个函数允许你指定新标签页的索引位置、要添加的控件(通常是 QWidget 的子类),以及标签页的标题或图标。

添加标签页:
使用 insertTab(int index, QWidget *widget, const QString &text) 可以向 QTabWidget 中的指定位置插入一个标签页。其中 index 是新标签页的索引位置,widget 是要作为标签页内容的控件,text 是标签页的标题。

QWidget *newTabPage = new QWidget;
newTabPage->setStyleSheet("background-color: lightgray;");
pTabWidget->insertTab(0, newTabPage, "New Tab");

setTabToolTip 设置标签页工具提示

setTabToolTip 是 Qt 框架中 QTabWidget 类的一个成员函数,它用于为特定的标签页设置工具提示(tooltip)。当用户将鼠标悬停在标签页上时,工具提示会显示出来,提供有关该标签页的额外信息或说明。

设置工具提示文本:
使用 setTabToolTip(int index, const QString &tip) 可以为指定索引的标签页设置工具提示。其中 index 是标签页的索引,tip 是要显示的工具提示文本。

pTabWidget->setTabToolTip(0, "This is the first tab");

QTabWidget的四个信号

  1. currentChanged:

    • 信号声明: void QTabWidget::currentChanged(int index)
    • 触发时机: 当当前选中的标签页发生变化时,无论是通过用户点击、拖动还是程序代码更改,都会发出此信号,并带有新选中标签页的索引。
  2. tabBarDoubleClicked:

    • 信号声明: void QTabWidget::tabBarDoubleClicked(int index)
    • 触发时机: 当用户双击标签栏上的某个标签页时发出此信号,参数 index 是被双击的标签页的索引。
  3. tabBarClicked:

    • 信号声明: void QTabWidget::tabBarClicked(int index)
    • 触发时机: 当用户点击标签栏上的某个标签页时发出此信号,无论该点击是否导致了标签页的切换。参数 index 是被点击的标签页的索引。
  4. tabCloseRequested:

    • 信号声明: void QTabWidget::tabCloseRequested(int index)
    • 触发时机: 当用户点击了可关闭的标签页上的关闭按钮时发出此信号。参数 index 是请求关闭的标签页的索引。

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。
同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。
谢谢您的支持,期待与您在下一篇文章中再次相遇!

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妖精七七_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值