You need to use setHtml to load markup in the webview:
self.html = QtWebKit.QWebView()
# self.web_page = text
# url = self.web_page
self.html.setHtml(text)
# self.html.show()
(The commented lines aren't needed).
To style the elements, add a stylesheet to your markup:
text = """
<html>
<style type="text/css">
p {color: red}
div {color: blue}
</style>
<body>
<p>This is a paragraph</p>
<div>This is inside div element</div>
</body>
</html>
"""
PS: using a QWebView for displaying markup is a very heavy-weight solution - it might be better to use QTextBrowser instead (which is much easier to use). This only has support for a limited subset of HTML, but it is usually good enough:
self.html = QtGui.QTextBrowser(self)
self.html.setHtml(text)