 <p>Unicode provides <strong>Directional Formatting Characters</strong>,and Qt supports it well.</p> <p>Thus,for <strong><code>QLabel</code></strong> and <strong><code>QLineEdit</code></strong> etc. we can insert a <strong><code>LRM</code></strong> control character<br/> ,which is define in <strong>Unicode Bidirectional Algorithm</strong>, at the beginning of a <strong>RightToLeft</strong> string to make the string <strong>left-alignment</strong>.For more information about <strong>Unicode Bidirectional Algorithm</strong>,click <a href="http://www.unicode.org/reports/tr9/" rel="nofollow">here</a>.</p> <pre><code>QString(QChar(0x200E))+strText; </code></pre> <p>And for <strong><code>QTextEdit</code></strong> etc. which has a <strong><code>QTextDocument</code></strong> we can make <strong>RightToLeft</strong> string <strong>left-alignment</strong> by setting <strong><code>QTextDocment</code></strong>'s <code>textDirection</code> to <strong><code>Qt::LeftToRight</code></strong>. </p> <p>ps:<br/> <strong><code>QString</code></strong> has a <strong><code>isRightToLeft</code></strong> member function to decide whether the string is <strong>RightToLeft</strong> or not. For example,a string that begins with a notation from <strong>Right-to-left</strong> writting language is <strong>RightToLeft</strong>. </p> <p>I answered <a href="http://stackoverflow.com/questions/27615175/how-to-make-right-to-left-language-eg-arabic-characters-behave-like-left-to-ri/27653970#27653970">another one</a>,which maybe helpful for finding your own solution.</p>