Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt4 import QtGui, QtCore, QtWebKit, QtNetwork
- from PyQt4.QtWebKit import QWebSettings
- QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.JavaEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanOpenWindows, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanCloseWindows, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.SpatialNavigationEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.PrintElementBackgrounds, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.SiteSpecificQuirksEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.LocalStorageEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.OfflineWebApplicationCacheEnabled, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True)
- QWebSettings.globalSettings().setAttribute(QWebSettings.DnsPrefetchEnabled, True)
- QWebSettings.globalSettings().enablePersistentStorage()
- cookieJar = QtNetwork.QNetworkCookieJar()
- networkAccessManager = QtNetwork.QNetworkAccessManager()
- networkAccessManager.setCookieJar(cookieJar)
- class myWebView(QtWebKit.QWebView):
- _windows = set()
- def __init__(self, parent=None):
- super(myWebView, self).__init__(parent)
- self.page().setNetworkAccessManager(networkAccessManager)
- self.load(QtCore.QUrl("http://www.google.com"))
- @classmethod
- def _removeWindow(cls, window):
- if window in cls._windows:
- cls._windows.remove(window)
- @classmethod
- def newWindow(cls):
- window = cls()
- cls._windows.add(window)
- return window
- def closeEvent(self, event):
- self._removeWindow(self)
- event.accept()
- def createWindow(self, webWindowType):
- window = self.newWindow()
- if webWindowType == QtWebKit.QWebPage.WebModalDialog:
- window.setWindowModality(QtCore.Qt.ApplicationModal)
- window.show()
- return window
- class myWindow(QtGui.QMainWindow):
- def __init__(self, parent=None):
- super(myWindow, self).__init__(parent)
- self.centralwidget = QtGui.QWidget(self)
- self.webView = myWebView(self.centralwidget)
- self.pushButton = QtGui.QPushButton(self.centralwidget)
- self.pushButton.setText("New Window")
- self.pushButton.clicked.connect(lambda: self.webView.createWindow(QtWebKit.QWebPage.WebBrowserWindow))
- self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
- self.verticalLayout.addWidget(self.pushButton)
- self.verticalLayout.addWidget(self.webView)
- self.setCentralWidget(self.centralwidget)
- if __name__ == "__main__":
- import sys
- app = QtGui.QApplication(sys.argv)
- main = myWindow()
- main.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement