【问题标题】:Set text direction for QLabel?为 QLabel 设置文本方向?
【发布时间】:2014-12-10 07:33:18
【问题描述】:

有没有办法为 QLabel 设置文本方向?我有一种情况,我有 QLabel 对象,其文本只是标点符号,我希望它以 RTL 或 LTR 格式显示。 (例如,括号或引号需要根据文本方向反转。)我尝试调用 QLabel::setLayoutDirection,但没有效果。

#include <QApplication>
#include <QLabel>

int main(int argc, char **argv)
{
    QApplication app (argc, argv);
    QLabel label(" :  «");
    label.setFont( QFont("Times New Roman", 72) );
    label.setLayoutDirection( Qt::RightToLeft );
    // label.setLayoutDirection( Qt::LeftToRight );
    label.show();
    return app.exec();
}

此时的解决方法是在字符串前面加上 0x202E(“从右到左覆盖”),但这显然有点笨拙。

【问题讨论】:

  • 您需要将文本设置为向右或自动将带有文本abcd 的标签转换为dcba
  • @luliu 您的示例不正确,因为abcd 具有明确定义的文本方向。
  • 您是否尝试过更改小部件的区域设置?
  • 感谢您的建议。我尝试了以下没有结果: label.setLocale(QLocale(QLocale::Arabic, QLocale::Egypt));

标签: qt qlabel


【解决方案1】:
label.setAlignment(Qt::AlignRight);

【讨论】:

  • setAlignment() 对我来说是正确的答案! ...因为setLayoutDirection() 根本不起作用。
猜你喜欢
  • 2011-02-14
  • 1970-01-01
  • 2020-09-13
  • 2019-05-23
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
相关资源
最近更新 更多