Текст QGraphicsTextItem справа налево

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

Я пробовал этот способ, но это не сработало для меня:

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)

Спасибо.


person Sepehr Mohammad Pour    schedule 17.01.2012    source источник


Ответы (1)


Похоже, вы могли бы использовать 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('''شسشس
                          یییییگ''')
person ekhumoro    schedule 18.01.2012
comment
нет, что-то изменилось, но не то, что мне нужно! первая строка должна быть справа! не осталось! посмотрите на эту картинку, ty ma3ta.persiangig.com/programing/text.png - person Sepehr Mohammad Pour; 18.01.2012
comment
@SepehrMohammadPour. Я обновил свой ответ некоторыми дополнительными предложениями. - person ekhumoro; 18.01.2012