在设置tabPosition为west,并且想设置tab只显示Icon不显示文字时Tab会比想要的效果长,为了解决这个问题,修改
QStyleSheetStyle::sizeFromContents函数,修改部分如下:(只要修改一句代码,注释一些代码即可)
#ifndef QT_NO_TABBAR
case CT_TabBarTab: {
QRenderRule subRule = renderRule(w, opt, PseudoElement_TabBarTab);
sz = csz.expandedTo(subRule.minimumContentsSize());
if (subRule.hasBox() || subRule.hasBorder()) {
sz = subRule.boxSize(sz);
int spaceForIcon = 0;
bool vertical = false;
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
if (!tab->icon.isNull())
spaceForIcon = 6 /* icon offset */ + 4 /* spacing */ + 2 /* magic */; // ###: hardcoded to match with common style
vertical = verticalTabs(tab->shape);
}
return sz;//commited by zhongfanglin@gmail.com + QSize(vertical ? 0 : spaceForIcon, vertical ? spaceForIcon : 0);
}
break;
}
#endif // QT_NO_TABBAR
没有评论:
发表评论