QTabWidget 标签页tabBar放在两侧,文字方向改为水平
因为最近要做一个把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放在两侧,文字方向改为水平相关推荐
- QTabWidget 标签页tabBar放左侧,文字方向改为水平
需要重载QTabBar的paintevent,代码如下: 转自:https://forum.qt.io/topic/92923/qtabbar-paintevent-issue/4 #include ...
- 垂直距页边距5厘米_Word页面设置,含纸张大小与方向、页边距和文字方向
在 Word 中,页面设置包括纸张大小.页边距.纸张方向.文字方向.分栏.分隔符等内容,本篇将介绍前面四项的设置方法.其中,纸张大小和页边距都分享了两种设置方法,即选用内置样式和自定义,此外,还分享了 ...
- QT中 QTabWidget标签页设置及获取
QTabWidget可用于多标签显示,鼠标选中的标签为当前活动标签页. QTabWidget有个setCurrentIndex槽,可用于修改当前活动标签页. (1).设置当前Tab页: QTabWid ...
- Qt tabwidget 标签页设置tabbar标题,tabwidget设置透明色
1.使用paintevent事件对窗口进行背景设置,背景如下图所示. 2.将tabwidget拖动进ui窗口中,编译运行效果如下,tabwidget会将背景图给遮挡,需要将tabwidget设置为透明 ...
- yandex禁止java script_Yandex最新版本浏览器新标签页按钮显示俄文的解决办法
最新的Yandex 20.11.3.179版本浏览器的语言包出现以下错误: 1.zh-CN.pak语言包里面有些俄文没有翻译完,中文"剪切"只翻译了"切".故重 ...
- Yandex浏览器新标签页按钮显示俄文的解决办法
求一个解决新标签页按钮显示为俄文的真正办法,下文只能把新标签页按钮改成英文,其余为中文.希望有人能知道新标签页按钮的文字封装在哪个文件里面,然后对文件进行修改. 最新的Yandex 20.11.3.1 ...
- QTabWidget 改变tabBar位置 并改变文字方向
起因 QTabWidget默认的tabBar在最上端. 改进 但有时需要将tabBar放置在左侧,但是设置后效果如下- 最终 有时候需要如下效果,则需要自定义style: 附相 ...
- QTabWidget——创建标签页的多页面切换
QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); / ...
- html中文本格式化、预格式化、计算机输出标签、address、title、文字方向、著作
文本格式化标签: 预格式化标签pre: 网页中文本默认是显示一行,没有格式,通过<pre></pre>标签包裹会显示默认的格式. <pre> <!-- 通过p ...
最新文章
- Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)
- 深度学习 CNN trick 合集
- 竟有内鬼!北理工硕士生「复制粘贴」论文,旷视研究员最新声明
- [转]Android蓝牙开发浅谈
- Netty4具体解释三:Netty架构设计
- 51nod 1096 距离之和最小 思维题,求中位数
- 两类传输协议:TCPUDP总结
- Mac本如何运营php框架,1、Mac系统下搭建thinkPHP框架环境
- 2019蓝桥杯省赛---java---A---4(迷宫)
- Rust学习笔记——模式和匹配
- FileUtils(文件读写操作工具类)
- NUCLEAR-ID细胞周期分析试剂盒特点与应用
- unlink快速入门
- python (win32com) 批量删除 word (docx, doc) 中所有页眉、页脚 (Word.Application, Word.Basic)
- IE中点击链接下载EXCEL文件直接以乱码方式打开解决
- jasper翻译_Jasper为什么成为了Max的小翻译 孩子要从小学习双语吗
- cordova-plugin-unionpay
- border:none以及border:0的区别
- Android解包打包system img的方法
- (七)JMockit 的MockUp+@Mock--基础篇