2012-01-17 5 views
2

Мне нужно написать некоторые тексты фарси в QGraphicsTextItem, но я не могу найти, как я могу сделать QGraphicsTextItem, чтобы написать RightToLeft !.
Может ли кто-нибудь мне помочь?QGraphicsTextItem Текст RightToLeft

я судимый этот путь, но он не работает для меня:

class DiagramTextItem(QtGui.QGraphicsTextItem): 

def __init__(self, parent=None, scene=None): 
    super(DiagramTextItem, self).__init__(parent, scene) 
    doc =QtGui.QTextDocument ('''شسشس 
           یییییگ''') 
    txtOpt = QtGui.QTextOption() 
    txtOpt.setAlignment(QtCore.Qt.AlignRight) 
    doc.setDefaultTextOption(txtOpt) 

Спасибо.

ответ

0

Похоже, вы могли бы использовать QTextOption.setTextDirection с Qt.RightToLeft.

Но обратите внимание, что вам может понадобиться, чтобы установить направление перед тем установить текст:

class DiagramTextItem(QtGui.QGraphicsTextItem): 
    def __init__(self, parent=None, scene=None): 
     super(DiagramTextItem, self).__init__(parent, scene) 
     doc = QtGui.QTextDocument() 
     txtOpt = QtGui.QTextOption() 
     txtOpt.setTextDirection(QtCore.Qt.RightToLeft) 
     doc.setPlainText('''شسشس 
         یییییگ''') 

Если это не сработает, попробуйте установить курсор на QGraphicsTextItem:

class DiagramTextItem(QtGui.QGraphicsTextItem): 
    def __init__(self, parent=None, scene=None): 
     super(DiagramTextItem, self).__init__(parent, scene) 
     cursor = self.textCursor() 
     format = cursor.charFormat() 
     format.setLayoutDirection(QtCore.Qt.RightToLeft) 
     cursor.setFormat(format) 
     self.setTextCursor(cursor) 
     self.setPlainText('''شسشس 
          یییییگ''') 
+0

нет, это изменило что-то, но еще не то, что мне нужно! первая строка должна быть справа! не осталось! посмотрите на этот рисунок, вы можете найти здесь http://ma3ta.persiangig.com/programing/text.png –

+0

@SepehrMohammadPour. Я обновил свой ответ с некоторыми дополнительными предложениями. – ekhumoro

 Смежные вопросы

  • Нет связанных вопросов^_^