2

ペルシア語のテキストを に書き込まなければなりませんが、 RightToLeft! を書き込む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)

ありがとうございました。

4

1 に答える 1

0

QTextOption.setTextDirectionQt.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('''شسشس
                          یییییگ''')
于 2012-01-18T00:07:37.900 に答える