因为最近要做一个把tabBar放在两侧的一个QTabWidget,但是发现文字的方向是竖着的,就研究了一下这个东西,发现tabBar里面是可以添加控件的,所以我就中tabBar里面添加了一个QLabel控件,控件的字体是正常的。

实现效果:

用到函数:

Void setTabButton(int index,ButtonPosition position,QWidget *widget);//给tabBar添加控件

QWidget *tabButton(int index,ButtonPosition) const;                             //获取tab上添加的控件

.h文件


class tabWidget: public QTabWidget
{Q_OBJECT
public:explicit tabWidget(QWidget *parent = nullptr);void updateselect();                          //用来设置一开始选中的状态int addTab(QWidget *widget, const QString &); //重载(不是虚函数)signals:public slots:void slotSetLabelColor(int color);            //自定义槽(响应tabBar点击事件)};

.cpp文件


tabWidget::tabWidget(QWidget *parent) : QTabWidget(parent)
{connect(this,SIGNAL(tabBarClicked(int)),this,SLOT(slotSetLabelColor(int)));}void tabWidget::slotSetLabelColor(int index)
{for(int i=0;i<this->count();i++){this->tabBar()->tabButton(i,QTabBar::ButtonPosition::RightSide)->setStyleSheet("background-color:rgba(0,0,0,0);");}this->tabBar()->tabButton(index,QTabBar::ButtonPosition::RightSide)->setStyleSheet("background-color:rgba(0,0,0,0);color:white;");}int tabWidget::addTab(QWidget *widget, const QString &label)
{int nRetrun=QTabWidget::addTab(widget,"");int count=this->count()-1;QLabel *labelTab=new QLabel(label,this);QFont ft;ft.setPointSize(20);labelTab->setFont(ft);labelTab->setAlignment(Qt::AlignCenter);this->tabBar()->setTabButton(count,QTabBar::ButtonPosition::RightSide,labelTab);this->tabBar()->tabButton(count,QTabBar::ButtonPosition::RightSide)->setFixedHeight(64);updateselect();return nRetrun;}void tabWidget::updateselect()
{for(int i=0;i<this->currentIndex();i++){this->tabBar()->tabButton(i,QTabBar::ButtonPosition::RightSide)->setStyleSheet("background-color:rgba(0,0,0,0);color:black;");}this->tabBar()->tabButton(this->currentIndex(),QTabBar::ButtonPosition::RightSide)->setStyleSheet("background-color:rgba(0,0,0,0);color:white;");}

在其它类里面调用写好的自定义tabwidget:

    tabWidget*m_tab=new test(this);QWidget *b1=new QWidget();QWidget *b2=new QWidget();m_tab->setGeometry(0,0,500,400);m_tab->setStyleSheet("QTabBar::tab{min-width:140px;max-width:140px;min-height:64px;max-height:64px;padding:0;}""QTabBar::tab:selected{background:#025bc7}");//设置tabwidget位置m_tab->setLayoutDirection(Qt::RightToLeft);m_tab->setTabPosition(QTabWidget::TabPosition::East);m_tab->addTab(b1,tr("一个"));m_tab->addTab(b2,tr("两个"));

QTabWidget 标签页tabBar放在两侧,文字方向改为水平相关推荐

  1. QTabWidget 标签页tabBar放左侧,文字方向改为水平

    需要重载QTabBar的paintevent,代码如下: 转自:https://forum.qt.io/topic/92923/qtabbar-paintevent-issue/4 #include ...

  2. 垂直距页边距5厘米_Word页面设置,含纸张大小与方向、页边距和文字方向

    在 Word 中,页面设置包括纸张大小.页边距.纸张方向.文字方向.分栏.分隔符等内容,本篇将介绍前面四项的设置方法.其中,纸张大小和页边距都分享了两种设置方法,即选用内置样式和自定义,此外,还分享了 ...

  3. QT中 QTabWidget标签页设置及获取

    QTabWidget可用于多标签显示,鼠标选中的标签为当前活动标签页. QTabWidget有个setCurrentIndex槽,可用于修改当前活动标签页. (1).设置当前Tab页: QTabWid ...

  4. Qt tabwidget 标签页设置tabbar标题,tabwidget设置透明色

    1.使用paintevent事件对窗口进行背景设置,背景如下图所示. 2.将tabwidget拖动进ui窗口中,编译运行效果如下,tabwidget会将背景图给遮挡,需要将tabwidget设置为透明 ...

  5. yandex禁止java script_Yandex最新版本浏览器新标签页按钮显示俄文的解决办法

    最新的Yandex 20.11.3.179版本浏览器的语言包出现以下错误: 1.zh-CN.pak语言包里面有些俄文没有翻译完,中文"剪切"只翻译了"切".故重 ...

  6. Yandex浏览器新标签页按钮显示俄文的解决办法

    求一个解决新标签页按钮显示为俄文的真正办法,下文只能把新标签页按钮改成英文,其余为中文.希望有人能知道新标签页按钮的文字封装在哪个文件里面,然后对文件进行修改. 最新的Yandex 20.11.3.1 ...

  7. QTabWidget 改变tabBar位置 并改变文字方向

    起因     QTabWidget默认的tabBar在最上端. 改进     但有时需要将tabBar放置在左侧,但是设置后效果如下- 最终     有时候需要如下效果,则需要自定义style: 附相 ...

  8. QTabWidget——创建标签页的多页面切换

    QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); / ...

  9. html中文本格式化、预格式化、计算机输出标签、address、title、文字方向、著作

    文本格式化标签: 预格式化标签pre: 网页中文本默认是显示一行,没有格式,通过<pre></pre>标签包裹会显示默认的格式. <pre> <!-- 通过p ...

最新文章

  1. Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)
  2. 深度学习 CNN trick 合集
  3. 竟有内鬼!北理工硕士生「复制粘贴」论文,旷视研究员最新声明
  4. [转]Android蓝牙开发浅谈
  5. Netty4具体解释三:Netty架构设计
  6. 51nod 1096 距离之和最小 思维题,求中位数
  7. 两类传输协议:TCPUDP总结
  8. Mac本如何运营php框架,1、Mac系统下搭建thinkPHP框架环境
  9. 2019蓝桥杯省赛---java---A---4(迷宫)
  10. Rust学习笔记——模式和匹配
  11. FileUtils(文件读写操作工具类)
  12. NUCLEAR-ID细胞周期分析试剂盒特点与应用
  13. unlink快速入门
  14. python (win32com) 批量删除 word (docx, doc) 中所有页眉、页脚 (Word.Application, Word.Basic)
  15. IE中点击链接下载EXCEL文件直接以乱码方式打开解决
  16. jasper翻译_Jasper为什么成为了Max的小翻译 孩子要从小学习双语吗
  17. cordova-plugin-unionpay
  18. border:none以及border:0的区别
  19. Android解包打包system img的方法
  20. (七)JMockit 的MockUp+@Mock--基础篇

热门文章

  1. SecureCRT常用快捷键
  2. 在html语言行间距,如何在html中更改行间距
  3. Python爬取煎蛋网的妹子图
  4. 【latex数学公式中在右下角或正下方添加字符】
  5. IP 网关 端口 网段 子网掩码 概念 区别
  6. js处理字符串、数组的方法
  7. 2021年高清卫星影像DEM数据免费下载,3款软件4个网站推荐给你
  8. [JS]笔记18_AJAX2_iframe元素AJAX跨域JSONP跨域
  9. Hicharts引入及水印去除
  10. 【MAC】照片图库分割!省空间又加快执行速度