我必须将一些波斯语文本写入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)


谢谢。

最佳答案

看来您可以将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('''شسشس
                          یییییگ''')

关于python - QGraphicsTextItem RightToLeft文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8903132/

10-12 22:01