我想渲染一个PNG的图像和一些文字,这是从一个滴帽开始。AFAIK,我可以使用QTextDocument::drawContents渲染富文本,但是我如何添加一个由常规大小文本包围的下拉帽呢?

发布于 2016-04-19 13:42:07
下面图像的上部是QTextBrowser,下面的部分是放置在QLabel上的呈现透明的QPixmap。

正如我的问题所述,我还没有尝试渲染任何额外的图片,但这不应该那么困难。
textDocument = QtGui.QTextDocument(self)
#self.t.setDocument(textDocument)
textDocument.setDefaultFont(QtGui.QFont("Times New Roman", 12))
textDocument.setDefaultStyleSheet(".firstcharacter {"
"float: left;"
"color: #903;"
"font-size: 72px;"
"font-family: Monotype Corsiva;"
"margin-top: -16px;"
"margin-bottom: -16px;"
"margin-right: 4px;"
"}")
textDocument.setHtml('<p>'
'<table class="firstcharacter"><tr><td>L</td></tr></table>'
'ipsum dolor sit amet, consectetur adipiscing elit. Mauris '
'tristique lobortis orci ac lacinia. Fusce eu purus eget '
'diam vehicula auctor nec eu elit. Morbi consequat facilisis '
'orci vel malesuada. Donec ultrices molestie sollicitudin. '
'Aliquam pharetra libero enim. Donec et suscipit massa. '
'Donec dui odio, dignissim non sodales et, tincidunt a sapien. '
'Phasellus elit nibh, adipiscing sed blandit vel, interdum et arcu.'
'</p>')
textDocument.setTextWidth(400)
img = QtGui.QImage(textDocument.size().toSize(),
QtGui.QImage.Format_ARGB32_Premultiplied)
img.fill(QtCore.Qt.transparent)
#img.fill(0xffffffff)
p = QtGui.QPainter(img)
p.translate(0, 0) #makes drop cap smoother
textDocument.drawContents(p)
p.end()
self.pic.setPixmap(QtGui.QPixmap.fromImage(img))
img.save(r"d:\testimg.png")参考文献:
https://stackoverflow.com/questions/36709329
复制相似问题