Qt应用开发(基础篇)——选项卡窗口 QTabWidget

news/2025/3/24 1:09:51/

  一、前言      

         QTabWidget类继承于QWidget,是一个拥有选项卡的窗口部件。

        QTabWidget类有一个选项卡栏QTabBar和一个页面区域,用来显示和选项卡相关联的界面。用户通过点击选项卡或者自定义快捷方式(ALT+Key)切换页面。

二、QTabWidget类

1、count

        该属性表示当前选项卡的数量。

int count() const

2、currentIndex

        该属性表示当前选项卡的索引,下标从0开始,如果没有部件则返回-1。

int currentIndex() const
void setCurrentIndex(int index)

3、documentMode

        该属性表示选项卡栏是否设置为文档模式,默认禁用。这与macOS上的文档模式相同。启用时,不会呈现选项卡部件框架,即选项卡页面和其后的窗口等页面无框架区分看起来是一个整体。此模式对于页面需要显示文档类型的情况非常有用,因为节省了选项卡部件框架占用的部分空间。

bool documentMode() const
void setDocumentMode(bool set)
文档模式

 

默认模式

 4、elideMode

        该属性表示在没有足够的空间显示给定选项卡栏大小的时候如何省略内容的策略。

Qt::TextElideMode elideMode() const
void setElideMode(Qt::TextElideMode mode)
定义描述
Qt::ElideLeft省略号应该出现在文本的开头
Qt::ElideRight省略号应该出现在文本的末尾
Qt::ElideMiddle省略号应该出现在文本的中间
Qt::ElideNone省略号不应该出现在文本中。

Qt::ElideLeft

 6、iconSize

        该属性表示选项卡标签的图标最大尺寸,图标原尺寸太大会被压缩,太小不会被放大。

QSize iconSize() const
void setIconSize(const QSize &size)

7、movable

        该属性表示是否可以移动选项卡,默认选项卡是不可移动的。

bool isMovable() const
void setMovable(bool movable)

8、tabBarAutoHide

        该属性表示当选项卡栏包含少于2个选项卡时,选项卡栏是否自动隐藏,默认不隐藏。

bool tabBarAutoHide() const
void setTabBarAutoHide(bool enabled)

9、tabPosition

        该属性表示选项卡的位置,默认QTabWidget::North,在上方。

QTabWidget::TabPosition tabPosition() const
void setTabPosition(QTabWidget::TabPosition position)
定义描述
QTabWidget::North选项卡绘制在页面的上面
QTabWidget::South选项卡绘制在页面的下面
QTabWidget::West选项卡绘制在页面的左侧
QTabWidget::East选项卡绘制在页面的右侧
QTabWidget::South

 

10、tabShape

        该属性表示选项卡角的形状,默认QTabWidget::Rounded圆角。

QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape s)
定义描述
QTabWidget::Rounded选项卡以圆形外观绘制
QTabWidget::Triangular选项卡以三角形外观绘制

QTabWidget::Triangular

 11、tabsClosable

        该属性表示选项卡栏是否应该在每个选项卡上放置关闭按钮。

bool tabsClosable() const
void setTabsClosable(bool closeable)

12、usesScrollButtons

        该属性表示,选项卡显示不下的时候是否使用按钮来滚动选项卡。

bool usesScrollButtons() const
void setUsesScrollButtons(bool useButtons)

13、公共函数

1)addTab

        新增选项卡、页面、标签和图标,返回选项卡的索引。

        如果标签包含“&”,那么将启用“ALT+Key”快捷方式,快速打开某选项卡。

        如果动态添加选项卡,需要先把setUpdatesEnabled设置为false,更新完成之后在设置为true,防止出现界面闪烁的情况。

int addTab(QWidget *page, const QString &label)
int addTab(QWidget *page, const QIcon &icon, const QString &label)

2)insertTab

        插入选项卡、页面、标签和图标,如果超出范围插入到尾部,返回选项卡的实际索引。其他注意事项参考addTab

 int insertTab(int index, QWidget *page, const QString &label)int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)

3)removeTab

        从选项卡中移除小部件,小部件本身不会被删除。

void removeTab(int index)

4)clear

        移除全部小部件。

void clear()

5)currentWidget

        返回当前页面显示的部件,如果选项卡为空,则返回nullptr。

QWidget *currentWidget() const

6)setCurrentWidget

        设置当前要显示的部件,传入的指针必须为有效值。

void setCurrentWidget(QWidget *widget)

7)setCornerWidget

        设置角部件,防止在选项卡旁边,基于选项卡的方向tabPosition赋值。

void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
定义描述
Qt::TopLeftCorner矩形的左上角。
Qt::TopRightCorner矩形的右上角。
Qt::BottomLeftCorner矩形的左下角。
Qt::BottomRightCorner矩形的右下角。

Qt::TopLeftCorner

8)cornerWidget

        返回角部件方向。

QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const

9)indexOf

        查找某部件指针,返回选项卡索引,不存在则返回-1。

int indexOf(QWidget *w) const

10)widget

        查找某部件选项卡索引,返回小部件指针,不存在返回nullptr。

QWidget *widget(int index) const

11)setTabEnable

        设置某选项卡使能,设置为false将不可选中显示部件,如果全部选项都是false,那么将显示其中的一个。

void setTabEnabled(int index, bool enable)
setTabEnable(2,false)

12)isTabEnabled

        获取索引处index对应的选项使能。

bool isTabEnabled(int index) const

13)setTabIcon

        设置索引index对应的选项卡图标。

void setTabIcon(int index, const QIcon &icon)

14)tabIcon 

        获取索引index对应的图标。

QIcon tabIcon(int index) const

15)setTabText

        设置索引处index对应的选项卡文本。

void setTabText(int index, const QString &label)

16)tabText 

        获取索引处index对应的文本。

QString tabText(int index) const

 17)setTabToolTip

        设置索引处index对应的选项卡提示语。

void setTabToolTip(int index, const QString &label)

18)tabToolTip

        获取索引处index对应的提示语。

QString tabToolTip(int index) const

19)setTabVisible

        设置索引处index对应的选项卡是否隐藏。

void setTabVisible(int index, bool visible)

20)isTabVisible 

        获取索引处index对应的选项卡是否隐藏。

bool isTabVisible(int index) const

21)setTabWhatsThis 

        设置索引处index页面的“这是什么”帮助文本设置为文本。

void setTabWhatsThis(int index, const QString &text)

22)tabWhatsThis 

        获取索引index页面的帮助文本。

QString tabWhatsThis(int index) const

14、信号

1)currentChanged       

        页面切换触发。

void currentChanged(int index)

2)tabBarClicked

        点击选项栏触发。

void tabBarClicked(int index)

3)tabBarDoubleClicked

        双击选项栏触发。

void tabBarDoubleClicked(int index)

 4)tabCloseRequested

        选项栏关闭触发。

void tabCloseRequested(int index)

http://www.ppmy.cn/news/1048295.html

相关文章

FPGA_学习_16_IP核_ROM(延迟一拍输出)

在寻找APD最合适的偏压的过程中,一般会用到厂商提供一条曲线,横坐标是温度的变化,纵坐标表示击穿偏压的变化,但每个产品真正的击穿偏压是有差异的。 为了能够快速的找到当前温度下真实的击穿偏压,我们可以这样做&#…

Multi-UAV Disaster Environment Coverage Planning with Limited-Endurance

Multi-UAV Disaster Environment Coverage Planning with Limited-Endurance 有限续航时间下的多无人机灾害环境覆盖规划 定义问题将初始地图转换为热图产生优化路径 基于 已知的灾区热图,设计一个多无人机全覆盖搜索的路径规划方法。可以在无人机有限能量约束下探索…

配置【专有网络VPC对等连接】实现多VPC内网免费互通

文章目录 介绍目的需求当前VPC环境计划VPC环境前提条件实现步骤VPC互通示意图创建VPC对等连接配置路由条目路由配置路由网段说明规则优先级精细控制ECS网段实操案例计划实现创建专有网络VPCVPC1VPC2VPC列表创建ECSECS1ECS2ECS列表

springboot 通过博途获取plc点位的数据

springboot 通过博途获取plc点位的数据 maven依赖<dependency><groupId>com.github.dathlin</groupId><artifactId>HslCommunication</artifactId><version>3.6.0</version> </dependency>这个版本尽量是新版本&#xff0c;不…

打印数字图形

目录 1.题目描述&#xff1a;先要求你从键盘输入一个整数n&#xff08;1<n<9&#xff09;&#xff0c;打印出指定的数字图形。 2.输入&#xff1a;输入包含多组测试数据。每组输入一个整数n&#xff08;1<n<9&#xff09;。 3.输出&#xff1a;对于每组输入&…

阿里云2核4G服务器配置汇总表_轻量和ECS

阿里云2核4G服务器配置价格表&#xff0c;297元一年&#xff0c;配置为轻量应用服务器2核4G、4M带宽、60GB高效云盘&#xff0c;折合24元一个月。 目录 2核4G服务器轻量&#xff1a; 2核4G服务器ECS 关于轻量和ECS的区别&#xff1a; 2核4G服务器轻量&#xff1a; 云服务器…

Window10安装ISE14.7闪退

简介 相信对于做FPGA的同行来说,逃不过Xilinx公司的芯片,而Xilinx公司的芯片又逃不过Spartan6系列,无论Xilinx怎么去强推7系列产品,Spartan6还是有大把的人在用(成本问题),虽然目前国内厂商生产的FPGA部分可替代Spartan6功能,很多精髓还是没有学习到。 相对于Xilinx主推…

Visual Studio Code前端开发插件推荐

引言 Visual Studio Code&#xff08;简称VS Code&#xff09;是一款轻量级且强大的开源代码编辑器&#xff0c;广受前端开发者的喜爱。其丰富的插件生态系统为前端开发提供了许多便利和增强功能的插件。本篇博客将向大家推荐一些在前端开发中常用且优秀的插件&#xff0c;并提…