QTabWidget选项卡垂直显示,但文本水平显示。

15

我正在尝试使用C++ Qt制作一个类似于这个的侧边栏:

Finder's sidebar

但是当将QTabWidget的方向设置为西侧时,文本会变成竖直方向。如何使文本在左侧,并水平对齐?附注:我不需要图标。谢谢。

3个回答

9
你可以使用 QListWidget 来显示“选项卡”(稍作修改以使其看起来符合您的要求),并使用 QStackedWidget 来处理页面之间的切换,就像普通的选项卡小部件一样。

我尝试了QListWidget方法,但是如何使它看起来像那样呢?使用样式表吗?我认为那里面的自定义能力不够强大... - Délisson Junio
如果您不需要图标,那么您需要自定义什么呢?去除边框并更改背景,并制作一个高亮渐变?这应该可以通过样式表实现。 - Eugene
我用以下样式表解决了它:http://pastebin.com/6UqpixtQ,非常感谢你! - Délisson Junio
2
解决方案还有其他地方可以获取吗?pastebin已将其删除,因为它现在太旧了。 - itapadar
有没有什么地方可以获取样式表? - Validus Oculus

3
在这里,我为一个WTFPL实现做一点“宣传”,你可以在这里的assembla找到它。非常感谢任何贡献。

例子1 例子2 例子3


1
使用QProxyStyle,此函数将使文本旋转180度,并且您可以旋转90度。
void MyProxyStyle::drawItemText( QPainter* painter,
                                 const QRect&,
                                 int alignment,
                                 const QPalette& palette,
                                 bool enabled,
                                 const QString& text,
                                 QPalette::ColorRole textRole ) const
{
    painter->save();
    painter->translate(160,50);
    painter->rotate(-180);

    QCommonStyle::drawItemText( painter,
                                rectangle,
                                alignment,
                                palette,
                                enabled,
                                text,
                                textRole );

    painter->restore();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接