Я использую чат-пузырь, способный отображать в нем эмоции.Я выбрал QTextEdit, так как легко вставлять изображения между текстом (используя cursor.insertImage (Qimage). Он должен иметь динамический размер, а также перенос. Проблема в том, что хорошо работает для более длинного текста, но когда текст короткий, текстовые сообщенияwidth является большим.
Я пробовал много комбинаций установки ширины textEdit и textDocument внутри него, но безуспешно.
Вот мой класс
class testTE(QTextEdit):
def __init__(self,parent=None):
super(testTE, self).__init__(parent)
self.setReadOnly(True)
self.setAcceptRichText(True)
self.txt="I am :D "
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(20)
sizePolicy.setVerticalStretch(0)
self.setSizePolicy(sizePolicy)
self.setLineWrapMode(QTextEdit.FixedColumnWidth)
self.setLineWrapColumnOrWidth(30)
cursor = self.textCursor()
txtEmo = re.split(":D", self.txt )
h = self.fontMetrics().boundingRect(self.txt).height()
emote = QPixmap(":/emotions/resources/colonD.png")
emote = emote.scaledToHeight(h)
for txt in txtEmo[:-1]: #Loop all except last
cursor.insertText(txt)
cursor.insertImage(emote.toImage())
#Last element:
cursor.insertText(txtEmo[-1])
def resizeEvent(self, e):
try:
super(testTE, self).resizeEvent(e)
self.setMaximumHeight(self.document().size().height())
except Exception as e:
traceback.print_exc()
Как можноЯ делаю так, чтобы он соответствовал ширине текста?