【发布时间】: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));