如何一个qtabwidget 隐藏tab的内容

qt使用tab管理多个界面
要求实现多个页面之间的切换
打算采用tab页来管理多个页面,并隐藏tab头
#include mytab.h
int main(int argc, char *argv[])
QApplication a(argc, argv);
return a.exec();
#ifndef MYTAB_H
#define MYTAB_H
#include ui_mytab.h
#include pagemain.h
#include pageend.h
#include pageset.h
#include mydefine.h
class mytab : public QMainWindow
typedef boost::bimap MapPageI
mytab(QWidget *parent = 0);
private slots:
void pagechange(E_TAB_PAGE page);
E_TAB_PAGE pagetype();
protected:
virtual void resizeEvent(QResizeEvent * event);
QTabWidget
//管理tab:&交接班&和&设置&
//主页面部分
//交接部分
//设置部分
MapPageIndex
m_mapPageI
//页面和tab索引进行绑定
void init();
void resize();
Ui::mytabC
#endif // MYTAB_H
#include mytab.h
mytab::mytab(QWidget *parent)
: QMainWindow(parent), m_pageMain(parent),m_pageSet(parent),m_pageEnd(parent)
ui.setupUi(this);
connect(&m_pageMain, SIGNAL(pagechange(E_TAB_PAGE)), this, SLOT(pagechange(E_TAB_PAGE)));
connect(&m_pageEnd, SIGNAL(pagechange(E_TAB_PAGE)), this, SLOT(pagechange(E_TAB_PAGE)));
connect(&m_pageSet, SIGNAL(pagechange(E_TAB_PAGE)), this, SLOT(pagechange(E_TAB_PAGE)));
//这里可以发送两次信号 这样不实时
m_pageEnd.init(this);
m_pageMain.init(this);
m_pageSet.init(this);
mytab::~mytab()
void mytab::init()
//m_mapPageIndex.clear();
//对tab进行设置下这里要
//必须设置父类,否则tab显示为另一个窗口
m_tabWidget.setParent(this);
m_tabWidget.setStyleSheet(
QTabWidget::pane{border: 0}
QTabWidget::tab-bar{alignment:}
QTabBar::tab{background: color: min-width:30 min-height:10}
QTabBar::tab:hover{background:rgb(255, 255, 255, 100);}
QTabBar::tab:selected{border-color:background:color:});
//隐藏QTabWidget,否则主窗口被覆盖
//m_tabWidget.hide();
m_tabWidget.tabBar()-&hide();
//设置tab可关闭
m_tabWidget.setTabsClosable(true);
int nindex = -1;
nindex = m_tabWidget.addTab(&m_pageMain,tr(pagemain));
if (nindex != -1)
m_mapPageIndex.insert(MapPageIndex::value_type(E_MAIN_PAGE, nindex));
//m_mapPageIndex[E_MAIN_PAGE] =
nindex = m_tabWidget.addTab(&m_pageSet,tr(pageset));
if (nindex != -1)
m_mapPageIndex.insert(MapPageIndex::value_type(E_SET_PAGE, nindex));
//m_mapPageIndex[E_SET_PAGE] =
nindex = m_tabWidget.addTab(&m_pageEnd,tr(pageend));
if (nindex != -1)
m_mapPageIndex.insert(MapPageIndex::value_type(E_END_PAGE, nindex));
//m_mapPageIndex[E_END_PAGE] =
//显示QTabWidget
m_tabWidget.show();
QRect rtClient = this-&geometry();
m_tabWidget.setGeometry(rtClient);
m_pageMain.setGeometry(rtClient);
pagechange(E_MAIN_PAGE);
void mytab::resizeEvent(QResizeEvent * event)
void mytab::resize()
QSize szClient = this-&size();
m_tabWidget.setGeometry(0, 0, szClient.width(), szClient.height());
QWidget *ptab = m_tabWidget.currentWidget();
if (ptab != nullptr)
ptab-&setGeometry(0, 0, szClient.width(), szClient.height());
void mytab::pagechange(E_TAB_PAGE page)
//这里查询左map
MapPageIndex::left_const_iterator it = m_mapPageIndex.left.find(page);
if (it != m_mapPageIndex.left.end())
m_tabWidget.setCurrentIndex(it-&second);
E_TAB_PAGE mytab::pagetype()
E_TAB_PAGE page = E_INVALID_PAGE;
int nindex = m_tabWidget.currentIndex();
if (nindex != -1)
MapPageIndex::right_const_iterator it = m_mapPageIndex.right.find(nindex);
if (it != m_mapPageIndex.right.end())
page = it-&
pagemain.h
#ifndef PAGEMAIN_H
#define PAGEMAIN_H
#include ui_pagemain.h
#include mydefine.h
class PageMain : public QWidget
PageMain(QWidget *parent = 0);
~PageMain();
void init(QWidget *pParent);
void pagechange(E_TAB_PAGE page);
private slots:
void on_endButton_clicked();
void on_setButton_clicked();
void on_typeButton_clicked();
QWidget *m_pP
#endif // PAGEMAIN_H
pagemain.cpp
#include pagemain.h
#include mytab.h
PageMain::PageMain(QWidget *parent)
: QWidget(parent)
ui.setupUi(this);
m_pParent =
PageMain::~PageMain()
void PageMain::on_endButton_clicked()
emit this-&pagechange(E_END_PAGE);
void PageMain::on_setButton_clicked()
emit this-&pagechange(E_SET_PAGE);
void PageMain::on_typeButton_clicked()
if (m_pParent != nullptr)
E_TAB_PAGE page = ((mytab *)m_pParent)-&pagetype();
QString strMsg();
strMsg = QString(%1).arg(page);
QMessageBox::information(this, page, strMsg);
void PageMain::init(QWidget *pParent)
m_pParent = pP
mydefine.h
#ifndef MY_DEFINE_H
#define MY_DEFINE_H
typedef enum eTabPages
E_MAIN_PAGE,
E_SET_PAGE,
E_END_PAGE,
E_INVALID_PAGE
}E_TAB_PAGE;
PageSet和PageEnd与PageMain较为相似 不进行上传
1.tab中的widget必须要有父类(否则可能会出现问题)
2.项目牵涉到由类型找tab索引和tab索引查找类型 故使用了boost的bimap来实现双向查找
3.在vs2010+qt5.40+win7上编译通过
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'如何给QTabWidget加滚动条?
[问题点数:40分,结帖人dinjay]
如何给QTabWidget加滚动条?
[问题点数:40分,结帖人dinjay]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2010年12月 移动平台大版内专家分月排行榜第二2010年11月 移动平台大版内专家分月排行榜第二
2011年5月 移动平台大版内专家分月排行榜第三2011年4月 移动平台大版内专家分月排行榜第三2011年3月 移动平台大版内专家分月排行榜第三
2013年7月 VC/MFC大版内专家分月排行榜第三2011年12月 VC/MFC大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。扫一扫关注官方微信的QTabWidget 滑动效果的一个展示
的QTabWidget 滑动效果的一个展示
所属分类:
下载地址:
Qt tabwidget滑动.zip文件大小:9.08 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
这是一款基于Qt的QTabWidget的一个页面滑动效果的, 源码, 当点击wdiget的按钮后, 进行滑动切换窗口, 滑动效果十分的漂亮并且十分的连贯, 适合初学者, 和大成者, 并且上面添加了日历的一些控件, 代码进行了日历的处理。 可以把内部代码拿下来, 并且改装成wiedet界面滑动效果, 都是可以的,& 需要的请下载。
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
536.00 B 14:46
368.00 B 14:46
3.84 kB 14:45
789.00 B 14:45
diqf.pro471.00 B 14:44
diqf.pro.user13.28 kB 14:49
diqf.pro.user.2.7pre117.01 kB 14:23
183.00 B 12:44
235.00 B 12:52
317.00 B 12:52
mainwindow.ui6.63 kB 14:42
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
23 篇源代码 21 篇源代码 18 篇源代码 13 篇源代码 9 篇源代码
285 篇源代码 173 篇源代码 48 篇源代码 42 篇源代码 36 篇源代码
评价成功,多谢!
下载Qt tabwidget滑动.zip
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-2 runtime:Elapsed:42.861ms - init:0.2;find:1.7;t:0.5;tags:0.8;related:35.4;comment:0.4; .206
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧2717人阅读
QT C++(59)
QTabWidget用法,笔记持续记录更新……
设置标签页头的名字:
ui-&tabWidget-&setTabText(0,&持卡人&);
ui-&tabWidget-&setTabText(1,&门高级&);
ui-&tabWidget-&setTabText(2,&读卡器&);
ui-&tabWidget-&setTabText(3,&时段&);
ui-&tabWidget-&setTabText(4,&周编程&);
ui-&tabWidget-&setTabText(5,&例外/例外组&);
ui-&tabWidget-&setTabText(6,&规则&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:220811次
积分:3618
积分:3618
排名:第6225名
原创:117篇
转载:26篇
评论:138条}

我要回帖

更多关于 qtabwidget 的tab样式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信