2

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

谢谢你。

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 回答