Guest User

Untitled

a guest
May 21st, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. from PyQt4.QtGui import *
  2. from PyQt4.QtCore import *
  3. from PyQt4.Qt import Qt
  4. from PyQt4.QtWebKit import QWebView, QWebSettings
  5.  
  6. [......]
  7.  
  8. def addHtmlItem(self, html, data):
  9. '''Adds a new QTextEdit widget containing the given HTMl as an item in the list.
  10. '''
  11. item = QListWidgetItem()
  12. item.setData(Qt.UserRole, data)
  13. self.addItem(item)
  14. item.setSizeHint(self._htmlItemWidget.frameSize())
  15.  
  16. label = QLabel()
  17. label.setTextInteractionFlags(Qt.NoTextInteraction)
  18.  
  19. html = u'<html><body style="margin:0px 0px 0px 4px">{0}</body></html>'.format(html)
  20.  
  21. if '<img' in html:
  22. self._htmlItemWidgetFinishedLoading = False
  23. self._htmlItemWidget.setHtml(html)
  24.  
  25. pm = QImage(self._htmlItemWidget.size(), QImage.Format_ARGB32)
  26. pm.fill(Qt.transparent)
  27.  
  28. # wait for it to finish loading, then render
  29. q_app = QApplication.instance()
  30. while not self._htmlItemWidgetFinishedLoading:
  31. q_app.processEvents(QEventLoop.WaitForMoreEvents | QEventLoop.ExcludeUserInputEvents)
  32.  
  33. self._htmlItemWidget.render(pm, flags=QWidget.DrawChildren)
  34.  
  35. label.setPixmap(QPixmap.fromImage(pm))
  36. else:
  37. label.setText(html)
  38.  
  39. self.setItemWidget(item, label)
Add Comment
Please, Sign In to add comment