2015-01-07 40 views
0

我正在寫一個應用程序QT應該使用權到左的佈局,但沒有與顯示的字符串,其中包括在qtreewidgetQTableWidget的空間,數字和字母串問題顯示錯誤。例如當我寫65%c它顯示爲c%65和當然日期時間顯示爲「2015年12月22日22時10分06秒」而不是「2015-01-06 22: 10:06「的Qt:在RTL佈局

我該如何解決這個問題?

截圖: enter image description here

謝謝

+0

請發表相關部分的鏈接。 – user2672165

+0

我使用qt設計器輸入文本。在qt設計器和應用文本顯示爲我提到的 – SantaXYZ

+0

如果你想我可以給你一些截圖 – SantaXYZ

回答

0

當您使用RTL佈局所有的孩子認爲你的寫作語言也RTL。 數字是通用的,因此根據此設置對待它們。 當你使用ltr字符(例如拉丁字母)時,這會產生這種「有趣的」副作用(當你編輯這個文本時,它會更加有趣,光標會被箭頭移動到不同的位置)。

解決這個問題的一種方法是在需要的地方添加Unicode Left-to-right mark字符。

IMO如果您的語言是ltr,那麼最好不要使用此功能(rtl佈局)。讓區域設置做到這一點。

你能解釋一下你爲什麼使用「rtl佈局」?你試圖實現什麼,你已經決定改變文本方向?

+0

我的應用程序應該翻譯成8種語言,其中3種語言是rtl。因此,我在qt設計器的rtl佈局中設計我的用戶界面,當用戶更改語言時,應用程序中的佈局方向將更改爲語言的方向(rtl或ltr)。 – SantaXYZ

+0

比你必須努力本地化。日期和時間應根據當前語言環境轉換爲字符串。如果您正在混合語言,則應在相應的本地化中添加「從左到右標記」。閱讀此:http://doc.qt.io/qt-5/internationalization.html –

+0

@Mark R從左到右標記working.thanks很多 – SantaXYZ