QTabWidget的tabbar居左时Text水平显示问题

原创 2010年11月09日 08:58:00

(开发音视频软件thinkvd的日志)
这个问题我在qtcn bbs中发过http://www.qtcn.org/bbs/read.php?tid=32563,现在把原因及解决思路记录下来。
(补允:没有再用HorusStyle, 这里也有源代码:http://www.qtforum.org/article/28672/how-to-change-qtabwidget-s-tab-positon.html,不过与他的实现方式不同)


当设置tabbar居左时, 直接用QTabWidget存在的几个问题:
1。文字不是水平显示
2。TabBar的内容显示与StackWidget显示冲突
3。调整单个TabBar的高度
4。单个TabBar的press event响应
5. 文字图片位置显示关系

分析原因:
1。QTabWidget::setUpLayout控制Table与stackwidget的关系, 但setUpLayout是private, 解决方法,就是把它重新实现,跟踪代码,发现在QTabWidget::initStyleOption中调整。
2。文字竖直显示要改成水平显示,需要重新实现tabbar::paintevent, 继承QTabtab, 仿效paintevent简单写一个,问题5与它类似
3。问题3,由于它的信息都存在QTabBarPrivate中,把Rect的top, height按显示顺序调整即可。
  问题4与它类似,重新实现mousePressEvent即可. 
  
  这里暂时做了一个demo,还有一些问题待解决,不过主要问题已经解决了。




带网格部分表示currentIndex.

改进一点:

相关文章推荐

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

修改QTabWidget tabBar位置并改变文字方向

QTabWidget设置为垂直方向时 实现文本内容为水平方向

利用 QProxyStyle设置QtabWidget的样式。 1.h文件 #ifndef TABWIDGET_H #define TABWIDGET_H #include #include ...

设置QTabWidget标题页纵向文字横向排列的写法

设置QTabWidget标题页纵向文字横向排列的写法 “` from PyQt4 import QtGui, QtCoreclass HorizontalTabWidget(QtGui.QTabB...
  • virgiI
  • virgiI
  • 2017年04月18日 13:18
  • 1022

QTabWidget的tabposition为west时,改变tab文字方向为从上到下

QTabWidget在tabPosition设置为west时,tab的文字方向默认为从下到上 要将tab的文字方向设置为从上到下,参照如下: class MyProxyStyle : pu...
  • wwwu_06
  • wwwu_06
  • 2015年03月12日 22:24
  • 3445

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

QTabWidget样式设置

QTabWidget::pane { border: 1px; background:transparent; } QTabWidget::tab-bar { background:transp...

QTabWidget简例/简介及各种问题

简例: tabWidget = new QTabWidget(); //新建第一个页面的部件 QWidget *widget = new QWidget(); QLineEdit *l...

QT中QTabWidget的使用

.pro代码: #------------------------------------------------- # # Project created by QtCreator 2015-11-...

Linux下学习MySQL命令的笔记

最近在Linux下需要使用到数据库MySQL,简单记录下学习笔记。 我所使用的Linux系统是RedHat企业版本(Red Hat Enterprise Linux 5)   一、查看MySql...

怎么写Makefile?

跟我一起写 Makefile 陈皓 第一章、概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和...
  • sunrier
  • sunrier
  • 2012年04月24日 14:39
  • 7847
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QTabWidget的tabbar居左时Text水平显示问题
举报原因:
原因补充:

(最多只允许输入30个字)