在 QTabWidget 的 tabBar 中换行

Posted

技术标签:

【中文标题】在 QTabWidget 的 tabBar 中换行【英文标题】:wrap text in the tabBar of QTabWidget 【发布时间】:2015-12-01 10:15:14 【问题描述】:

我正在动态更改 QTabWidget 的文本并更改其字体系列。所以 tabBar 标题中的文本超出了实际宽度。我如何控制文本以像

一样包裹在 tabBar 宽度内

“文字..”

我使用样式表设置字体系列

QString menuBarStyle = QString("QTabBar::tab  font-family: %1;font-style: %2;font-size: 11pt;font-weight: %3;width: 130px").arg(m_currentFont.family()).arg(fontStyle).arg(fontWeight);
   TabWidget->setStyleSheet(menuBarStyle);

【问题讨论】:

【参考方案1】:

Qt 样式表技术可能会也可能不会解决它,但我曾经解决过类似的问题:

QString elidedText(const QFont& someFont, int width)

    QFontMetrics metrix( someFont );
    return metrix.elidedText(text, Qt::ElideRight, width);

因此,除了字体对象之外,您还必须具有适合文本的宽度。此外,通过小部件的样式表频繁应用更改几乎不是最佳解决方案,获得微小的更改有点太多了。

【讨论】:

以上是关于在 QTabWidget 的 tabBar 中换行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UILabel 中换行

java中换行字符怎么用?

避免在textarea中换行[重复]

java中换行字符怎么用?

如何在输出中换行

在 PHP 中的 textarea 值中换行