2

我在 RTL 中使用 Qt 4.7.4 和我的应用程序语言。我已将应用程序布局设置为 RightToLeft。因此,除了 QLineEdit 中的占位符外,现在所有内容都是从右到左的。

我尝试了 setAlignment 方法,但它会反向更改文本和占位符方向。然后我尝试了 setStylesheet 但它不适用于

direction:rtl;
text-align:right;
unicode-bidi:embed;

我认为这是一个错误,有什么解决办法吗?

4

1 回答 1

2

4.7 版的变更日志如下:

QWidget::setLayoutDirection 不再影响 QTextEdit、QLineEdit 和基于它们的小部件的文本布局方向(Qt::LeftToRight 或 Qt::RightToLeft)。

现在从键盘布局和文本语言(符合 Unicode 标准)检测默认文本布局方向(Qt::LayoutDirectionAuto)。

要以编程方式强制 QTextEdit 的文本方向,您可以使用具有不同 textDirection 属性的新 QTextOption 更改与该小部件关联的 QTextDocument 的 defaultTextOption。

对于 QLineEdit,目前唯一的方法是将 Qt::Key_Direction_L/R 键盘事件发送到该小部件。

希望有帮助。

于 2012-06-14T10:51:56.177 回答