栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Qt中TabWidget控件获取tab索引遇到的问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Qt中TabWidget控件获取tab索引遇到的问题

Qt中TabWidget控件获取tab索引遇到的问题
  • 在Qt中常用的两个信号是:currentChanged(int index)和tabBarClicked(int index),这两个函数的意思是当当前tab改变时触发和当tab被点击时触发。
  • 但是在上面这两个信号中使用currentIndex()函数获取索引时会出现两种不同的结果,这个结果非常容易导致程序有bug,下面简单记录一下。

在currentChanged(int index)函数中添加如下代码:

int cnt = ui->tabWidget->currentIndex();
qDebug() << "********currentChanged(int index)********";
qDebug() << "currentIndex() index: " << cnt;
qDebug() << "currentChanged index: " << index;

在tabBarClicked(int index)函数中添加如下代码:

int cnt = ui->tabWidget->currentIndex();
qDebug() << "********tabBarClicked(int index)********";
qDebug() << "currentIndex() index: " << cnt;
qDebug() << "tabBarClicked index: " << index;

则启动Qt窗口应用程序的时候对tab进行切换,在currentChanged(int index)函数中的ui->tabWidget->currentIndex()函数得到的索引是切换之后的,而tabBarClicked(int index)函数中的ui->tabWidget->currentIndex()函数得到的索引是切换之前的。如果原来的索引时0,则点击切换到索引1之后代码输出的结果是:

********tabBarClicked(int index)********
currentIndex() index:  0
tabBarClicked index:  1
********currentChanged(int index)********
currentIndex() index:  1
currentChanged index:  1

这里跟实际的不一样,所以最后如果需要获取tab的索引,还是建议直接使用信号当中的index参数,这个参数就是切换之后的索引值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298257.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号