QGraphicsTextItem RightToLeft text - PullRequest
2 голосов
/ 18 января 2012

Мне нужно написать несколько текстов на фарси для QGraphicsTextItem, но я не могу найти, как заставить 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)

Спасибо.

1 Ответ

0 голосов
/ 18 января 2012

Похоже, вы могли бы использовать 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('''شسشس
                          یییییگ''')
...