2012-06-12 55 views
2

我在RTL中使用Qt 4.7.4和我的應用程序語言。 我已經將應用程序佈局設置爲RightToLeft。 因此,除了QLineEdit中的佔位符之外,所有內容現在都是正確的。Qt - 如何改變QLineEdit中佔位符的方向?

我試過setAlignment方法 ,但它改變了文本和佔位符的方向。 然後我試圖setStylesheet,但它並不適用於

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

工作,我認爲這是一個錯誤,有沒有解決?

+0

您是否嘗試過爲每個'QLineEdit'小部件單獨調用'setLayoutDirection(Qt :: RightToLeft)'?我不是說它會起作用... – TonyK

+0

@TonyK:謝謝,我試過了,但它不起作用。 –

回答

2

爲4.7版本更改日誌的內容如下:

QWidget的:: setLayoutDirection不再影響基於的QTextEdit,QLineEdit的 和窗口小部件的(QT :: LeftToRight或Qt的::從右至左)的文本佈局 方向在他們。

現在通過鍵盤佈局和 文本語言(符合Unicode標準)檢測到默認文本佈局方向 (Qt :: LayoutDirectionAuto)。

要 編程方式迫使一個QTextEdit的文字方向,可以 改變與 部件具有不同的textDirection財產的新QTextOption相關聯的另外,QTextDocument的defaultTextOption。

對於QLineEdit,目前唯一的方法是向該窗口小部件發送一個Qt :: Key_Direction_L/R 鍵盤事件。

希望有所幫助。

+1

謝謝。我擴展了QLineEdit並將下面的代碼放在裏面:'QKeyEvent e(QEvent :: KeyPress,Qt :: Key_Direction_R,0); QApplication :: sendEvent(this,&e);'它的效果非常好。 –