QGraphicsTextItem RightToLeft文本

时间:2012-01-17 23:26:10

标签: python qt pyqt qgraphicsscene qgraphicstextitem

我必须给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 :(得分: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('''شسشس
                          یییییگ''')