Skip to main content
 首页 » 编程设计

python之QGraphicsTextItem 从右到左文本

2025年05月04日13kevingrace

我必须将一些波斯语文本写入 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.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('''شسشس 
                          یییییگ''')