【问题标题】:QTabWidget tabs on the vertical, but text in horizontalQTabWidget 选项卡在垂直方向,但文本在水平方向
【发布时间】:2012-12-27 07:17:08
【问题描述】:

我正在尝试用 C++ Qt 制作一个带有这样一个侧边栏的应用程序:

但是当 QTabWidget 的方向为 West 时,它会使文本垂直。如何让文本在左侧,但水平对齐? Ps:我不需要图标。提前致谢。

【问题讨论】:

    标签: c++ qt cross-platform sidebar qtabwidget


    【解决方案1】:

    您可以使用QListWidget 显示“标签”(使用一些模组使其看起来像您想要的那样)和QStackedWidget 处理页面之间的切换,就像普通标签小部件一样。

    【讨论】:

    • 我确实尝试过 QListWidget 方法,但如何让它看起来像那样?样式表?我没有看到那么多的定制能力......
    • 如果不需要图标,还需要自定义什么?删除边框并更改背景并制作高光渐变?这应该可以通过样式表实现。
    • 我用下面的样式表解决了这个问题:pastebin.com/6UqpixtQ,非常感谢你!
    • 该解决方案是否在其他地方可用? pastebin 已将其删除,因为它现在太旧了。
    • 从某个地方获取样式表会很好吗??
    【解决方案2】:

    WTFPL 实现 here on assembla 的一些“广告” 任何贡献都将不胜感激。

    【讨论】:

      【解决方案3】:

      使用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();
      }
      

      【讨论】:

        猜你喜欢
        • 2012-04-20
        • 2017-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        相关资源
        最近更新 更多