我在 RTL 中使用 Qt 4.7.4 和我的应用程序语言。我已将应用程序布局设置为 RightToLeft。因此,除了 QLineEdit 中的占位符外,现在所有内容都是从右到左的。
我尝试了 setAlignment 方法,但它会反向更改文本和占位符方向。然后我尝试了 setStylesheet 但它不适用于
direction:rtl;
text-align:right;
unicode-bidi:embed;
我认为这是一个错误,有什么解决办法吗?
我在 RTL 中使用 Qt 4.7.4 和我的应用程序语言。我已将应用程序布局设置为 RightToLeft。因此,除了 QLineEdit 中的占位符外,现在所有内容都是从右到左的。
我尝试了 setAlignment 方法,但它会反向更改文本和占位符方向。然后我尝试了 setStylesheet 但它不适用于
direction:rtl;
text-align:right;
unicode-bidi:embed;
我认为这是一个错误,有什么解决办法吗?
4.7 版的变更日志如下:
QWidget::setLayoutDirection 不再影响 QTextEdit、QLineEdit 和基于它们的小部件的文本布局方向(Qt::LeftToRight 或 Qt::RightToLeft)。
现在从键盘布局和文本语言(符合 Unicode 标准)检测默认文本布局方向(Qt::LayoutDirectionAuto)。
要以编程方式强制 QTextEdit 的文本方向,您可以使用具有不同 textDirection 属性的新 QTextOption 更改与该小部件关联的 QTextDocument 的 defaultTextOption。
对于 QLineEdit,目前唯一的方法是将 Qt::Key_Direction_L/R 键盘事件发送到该小部件。
希望有帮助。