【问题标题】:QGraphicsTextItem RightToLeft textQGraphicsTextItem RightToLeft 文本
【发布时间】:2016-05-04 07:49:43
【问题描述】:

我必须向 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)

谢谢。

【问题讨论】:

    标签: python qt pyqt qgraphicsscene qgraphicstextitem


    【解决方案1】:

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

    【讨论】:

    • 不,它改变了一些东西,但仍然不是我需要的!第一行必须在右边!没有离开!看看这张照片,ty ma3ta.persiangig.com/programing/text.png
    • @SepehrMohammadPour。我已经用一些进一步的建议更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多