我在畫布上需要顯示一些文字的一些小的圖形項。當存在換行符時,垂直行間距不必要的大,這使得文本被繪製在圖形項目之外。我一直在尋找一種方法來設置QGraphicsTextItem的行間距(或者可能是高度),但沒有運氣。qt set line spacing.height in QGraphicsTextItem
我試過了;
setHtml("<div line-height=100%>some text</div>")
等
的代碼,其中一個需要設置線間快速地是:
class GraphicText(QtGui.QGraphicsTextItem):
def __init__(self, text='', font=None, editable=False, text_width = None, **kw):
super(GraphicText, self).__init__(**kw)
if editable:
self.setTextInteractionFlags(QtCore.Qt.TextEditorInteraction)
else:
self.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
if font:
self.setFont(font)
self.setText(text, text_width)
def setText(self, text = '', text_width = None):
cw = self.textWidth()
try:
width = text_width or (cw if cw>0 else False) or self.parentItem().boundingRect().width()-4
except AttributeError:
width = 100
self.setTextWidth(width)
self.setHtml(text)
rect = self.boundingRect()
self.setPos(-rect.width()/2, -rect.height()/2) # center
這是的Python/PySide,但在其他的API是幾乎一樣的C++。 HTML當前作爲參數'text'傳遞給init方法。 QGraphicsTextItem的父項是一個QGraphicsItem。
請幫忙,這真的是一個眼神。
乾杯,拉爾斯。
有人嗎?我應該多解釋一下嗎?這是不可能的嗎? – Lars