QT之QTabWidget 为West方向时实现文字垂直显示
2017-07-04 14:55
239 查看
QTabWidget 设置setTabPosition 为West时,文字垂直显示。
/* 创建工程 作者:七嘉伯 博客地址:http://www.qijiabo.cn QQ:820091856 注:请尊重作者版权 */ #ifndef CUSTOMTABSTYLE_H #define CUSTOMTABSTYLE_H #include <QProxyStyle> #include <QPainter> #include <QStyleOptionTab> class CustomTabStyle : public QProxyStyle { public: QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const { QSize s = QProxyStyle::sizeFromContents(type, option, size, widget); if (type == QStyle::CT_TabBarTab) { s.transpose(); s.rheight() = 90; s.rwidth() = 17; } return s; } void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { if (element == CE_TabBarTabLabel) { if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) { QRect allRect = tab->rect; if (tab->state & QStyle::State_Selected) { painter->save(); painter->setPen(0x89cfff); painter->setBrush(QBrush(0x89cfff)); painter->drawRect(allRect.adjusted(1, 3, -1, -6)); painter->restore(); } QTextOption option; option.setAlignment(Qt::AlignCenter); if (tab->state & QStyle::State_Selected) { painter->setPen(0xf8fcff); } else { painter->setPen(0x5d5d5d); } painter->drawText(allRect, tab->text, option); return; } } if (element == CE_TabBarTab) { QProxyStyle::drawControl(element, option, painter, widget); } } }; #endif // CUSTOMTABSTYLE_H
源码下载地址:
http://www.qijiabo.cn/2017/07/04/qt%e4%b9%8bqtabwidget-%e4%b8%bawest%e6%96%b9%e5%90%91%e6%97%b6%e5%ae%9e%e7%8e%b0%e6%96%87%e5%ad%97%e5%9e%82%e7%9b%b4%e6%98%be%e7%a4%ba
相关文章推荐
- CSS实现文字竖排 DIV CSS文字垂直竖列排版显示如何实现?
- [置顶] 关于图片与文字在一行显示时,文本的垂直方向位置的设置
- QTabWidget设置为垂直方向时 文本如何设置为水平方向
- Qt QTableWidget 最后一览自适应宽度 、QTableWidgetItem 文字 居中对其、 显示中文
- Qt qtablewidget 实现筛选功能,显示符合条件的整行信息
- Android TextView 带背景的文字垂直方向显示(ems属性)
- Delphi7如何实现让Tedit显示文字垂直居中(上下居中)
- 水平、垂直方向显示文字
- css实现文字水平方向垂直方向同时居中的方式
- Qt中,当QDockWidget的父窗口是一个不可以拖动的QTabWidget的时候实现拖动的方法
- div层实现文字垂直显示
- Fedora14 基于Qt的UDP传输文字聊天小软件实现 (Qt查询本地Ip、Qt本地时间显示、传输中文汉字实现、Qt的textedit自动滚屏实现、给QPushButton设键盘快捷实现)---续上
- android 中实现任意方向的文字显示
- CSS实现新闻标题,一行文字垂直居中,两行文字超出显示省略号
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字
- VB实现文字“闪入”显示的特殊效果
- 用CSS实现文字垂直居中的代码
- 简单css实现图片和文字的居中显示,IE下有效
- c#动态设置combobox控件下拉项宽度以实现下拉项文字可以完全显示。
- 小技巧:用CSS如何实现单行图片与文字垂直居中