Вкладки QTabWidget по вертикали, но текст по горизонтали

Я пытаюсь сделать приложение на C++ Qt с такой боковой панелью:

Finder's sidebar

но при ориентации QTabWidget на Запад он делает текст вертикальным. Как сделать текст слева, но горизонтально выровненным? Ps: мне не нужны значки. Спасибо заранее.

3 ответов


можно использовать QListWidget чтобы показать " вкладки "(с некоторыми модами, чтобы сделать его похожим на вас) и QStackedWidget для обработки переключения между страницами, как обычный виджет вкладки.


немного "рекламы" на WTFPL реализация здесь на assembla Любой вклад будет высоко оценен.

exemple1exemple2exemple3


используйте 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();
}