简介

QTabWidget 为选项卡小部件,提供一个选项卡栏(参见 QTabBar)和一个“页面区域”,用于显示与每个选项卡相关的页面。默认情况下,选项卡栏显示在页面区域的上方,但是可以使用不同的配置(请参见 TabPosition)。每个选项卡都与不同的小部件(称为页面)相关联。页面区域中只显示当前页面;其他所有页面都隐藏。用户可以通过单击其选项卡或按 Alt+ 字母快捷键(如果有)来显示不同的页面。
使用 QTabWidget 的正常方法是执行以下操作:
创建一个 QTabWidget。
为选项卡对话框中的每个页面创建一个 QWidget,但不要为它们指定父窗口小部件。
将子窗口小部件插入页面窗口小部件,使用布局将其定位为正常位置。
调用addTab()或insertTab()将页面小部件放入选项卡小部件,为每个选项卡提供一个带有可选键盘快捷键的合适标签。
先看最下面的示例代码的执行效果图:

属性相关方法

// 返回选项卡栏中的选项卡数
int count() const// 返回当前选项卡页的索引位置
int currentIndex() const// 返回当前选项卡页的索引位置
void setCurrentIndex(int index)// 如何省略选项卡栏中的文本
void setElideMode(Qt::TextElideMode mode)// 设置选项卡栏中图标的大小
void setIconSize(const QSize &size)// 设置用户是否可以在选项卡栏区域内移动选项卡
void setMovable(bool movable)// 设置为true,则当选项卡栏包含少于2个选项卡时,它将自动隐藏
void setTabBarAutoHide(bool enabled)// 设置选项卡在此选项卡小部件中的位置
void setTabPosition(QTabWidget::TabPosition position)// 设置选项卡小部件中选项卡的形状
void setTabShape(QTabWidget::TabShape s)// 设置是否将关闭按钮自动添加到每个选项卡,默认为false
void setTabsClosable(bool closeable)// 当选项卡栏有许多选项卡时,此属性决定是否应使用按钮滚动选项卡
void setUsesScrollButtons(bool useButtons)

增删选项的方法

// 添加选项卡
int addTab(QWidget *page, const QString &label)
int addTab(QWidget *page, const QIcon &icon, const QString &label)// 插入选项卡
int insertTab(int index, QWidget *page, const QString &label)
int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)// 清空选项卡
void clear()// 移除选项卡
void removeTab(int index)

选项栏和内容控件

// 获取内部的TabBar
QTabBar * tabBar() const// 获取指向具有给定索引的页面小部件
QWidget * widget(int index) const// 查找小部件的索引位置
int indexOf(QWidget *w) const// 获取当前选择tab指向的子页面
QWidget * currentWidget() const    // 获取角落控件
QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
// 设置角落控件
void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)

选项修改

// 设置tab使能
bool isTabEnabled(int index) const
// 是否可用
void setTabEnabled(int index, bool enable)// 是否可见
bool isTabVisible(int index) const
// 设置可见
void setTabVisible(int index, bool visible)// 获取tab上的图标
QIcon tabIcon(int index) const
// 设置tab上的图标
void setTabIcon(int index, const QIcon &icon)// 获取tab的文本
QString tabText(int index) const
// 设置tab的文本
void setTabText(int index, const QString &label)// 获取tab的ToolTip
QString tabToolTip(int index) const
// 设置tab的ToolTip
void setTabToolTip(int index, const QString &tip)

示例代码

void Widget::initTabWidget()
{QHBoxLayout* lay = new QHBoxLayout(this);QTabWidget *pTabWidget = new QTabWidget(this);pTabWidget->setTabsClosable(true);pTabWidget->setMovable(true);pTabWidget->setTabPosition(QTabWidget::North);pTabWidget->setTabShape(QTabWidget::Rounded);  //梯形tabQWidget *w1 = new QWidget;w1->setStyleSheet("background-color:rgb(54,54,54)");QWidget *w2 = new QWidget;w2->setStyleSheet("background-color:rgb(54,154,54)");QWidget *w3 = new QWidget;w3->setStyleSheet("background-color:rgb(54,54,154)");pTabWidget->insertTab(0, w1, "tab1");pTabWidget->insertTab(1, w2, "tab2");pTabWidget->insertTab(2, w3, "tab3");//pTabWidget->addTab(new QTabBar, "");//Form* f = new Form;//pTabWidget->insertTab(3, f, "tab4");//pTabWidget->setTabVisible(2, false);pTabWidget->setTabToolTip(2, "this is tab2");lay->addWidget(pTabWidget);/*Q_SIGNALS:void currentChanged(int index);void tabCloseRequested(int index);void tabBarClicked(int index);void tabBarDoubleClicked(int index);*/connect(pTabWidget, &QTabWidget::currentChanged, [=](int index){qDebug() << "index = " << index;});connect(pTabWidget, &QTabWidget::tabBarDoubleClicked, [=](int index){qDebug() << "tabBarDoubleClicked index = " << index;});connect(pTabWidget, &QTabWidget::tabBarClicked, [=](int index){qDebug() << "tabBarClicked index = " << index;});connect(pTabWidget, &QTabWidget::tabCloseRequested, [=](int index){qDebug() << "tabCloseRequested index = " << index;pTabWidget->removeTab(index);  // 关闭tab});
}

源代码

QT QTabWidget 使用相关推荐

  1. QT QTabWidget 控件 使用详解

    本文详细的介绍了QTabWidget控件的各种操作,例如:新建界面.设置页面名字.设置提示信息.设置页面激活.设置标题栏位置.设置页面关闭按钮.设置页面关闭按钮.获取页面下标.获取页面总数.清空所有页 ...

  2. QT QTabWidget Tabar设置图标

    QT QTabWidget Tabar设置图标的三种方式;多个tab标签设置图标 一.通过setStyleSheet样式表设置Tabar图标 二.通过setTabIcon函数设置图标 三.通过修改.u ...

  3. Qt QTabWidget详解

    1.常用API //添加 int addTab(QWidget *page, const QString &label)//设置tab位置 void setTabPosition(QTabWi ...

  4. qt QTabWidget双击选项卡修改选项卡名字

    思路:双击发出信号,显示创建好的QLineEdit输入名字,输入完成发出信号,获取QLineEdit的字符给选项卡改名字.由于不想重写QTabWidget,所以主要问题是如何确定QLineEdit的位 ...

  5. Qt QTabWidget插入widget(重要的是编程思想)

    大神们都是这么写代码的. 比如QTableWidget,每一个页面都插入一个QWidget,而不是一个人在一个一个Tab里面拖控件. 原始的运行图如下(没有插入QWidget): 插入两个QWidge ...

  6. qt QTabWidget setTabsClosable

    tabWidget = new QTabWidget();     tabWidget ->setUsesScrollButtons(true);//使QTabWidget显示滚动条     t ...

  7. Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)

    目录 1.QTabWidget容器控件类 2.QStackedWidget容器控件类 3.QDockWidget容器控件类 有时候我们可能会面临这样一种情况:所开发的程序包含了太多的控件,导致一个窗口 ...

  8. 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  9. Qt之QTabWidget

    QTabWidget #include "tab.h"Tab::Tab(QWidget *parent): QMainWindow(parent) {ui.setupUi(this ...

最新文章

  1. 解决windows文件在linux系统中显示乱码的问题
  2. IOS 非常流畅的滑动tableView
  3. linux docker搭建 minecraft 我的世界游戏服务器
  4. c++ 四舍五入保留两位小数_Excel中保留小数点位数
  5. 计算机网络-信道的极限容量
  6. 前端/JS笔记-利用JS/正则判断input是否存数字以及字母加数字
  7. VMware产品互操作性列表
  8. WEB网页专业词汇 汇总
  9. unity3d手游破解(一)
  10. 极域教室管理软件全屏广播窗口化,解除网络限制,阻止老师监控进程,阻止黑屏安静,强制杀死极域进程等
  11. 第十一篇 ANDROID 系统网络连接和管理机制与架构
  12. 课题:shell脚本安装httpd
  13. Web前端开发之网站制作流程详细讲解
  14. 产品经理应该如何学习
  15. JAVA简单大数运算
  16. PHP学习——4 Integer类型
  17. ToB 服务的交付能力优化
  18. 我的世界java版合成表_Minecraft 1.12.2 Mod开发笔记——新的合成表、烧炼规则和燃料...
  19. 没有网线的时候怎么让虚拟机使用Windows的wifi上网设置
  20. 新浪财经知识图谱解译平台

热门文章

  1. i5 12600k核显相当于什么显卡
  2. Django中间件介绍和使用
  3. Python实现http基本认证(BASIC AUTHENTICATION)
  4. java大一期末试卷含答案
  5. python爬贴吧图片下载到本地
  6. SW如何自定义工程图比例?
  7. linux中ls-f的用法,ls命令--Linux命令应用大词典729个命令解读
  8. 淘米网汪海兵:为爱创业 刚进腾讯很失落(转载)
  9. NTT DATA将Gestoos选为开放式创新大赛的冠军
  10. 最新OPPOR9S无人直播魅族版硬改相机刷机教程