QGraphicsTextItem 从右到左的文本
我需要在一个 QGraphicsTextItem
上写一些波斯语的文本,但我找不到怎么让 QGraphicsTextItem
支持从右到左的书写方式!
有没有人能帮帮我?
我试过这种方法,但对我来说没有用:
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
看起来你可以使用 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('''شسشس
یییییگ''')