def tryout_with_qt(): import sys from PyQt4 import QtCore, QtWebKit, QtWidgets from os.path import join, dirname import ibeis.viz class Browser(QtWebKit.QWebView): def __init__(self): super(Browser, self).__init__() self.loadFinished.connect(self._result_available) def _result_available(self, ok): pass #frame = self.page().mainFrame() #print(unicode(frame.toHtml()).encode('utf-8')) app = QtWidgets.QApplication(sys.argv) view = Browser() view.show() path = join(dirname(ibeis.viz.__file__), 'd3_example.html') view.load(QtCore.QUrl(path)) view.page().settings().setAttribute( QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) insp = QtWebKit.QWebInspector() insp.setPage(view.page()) insp.show() app.exec_()
def __init__(self, parent=None): super(MyWindow, self).__init__(parent) layout = QtGui.QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) webView = QtWebKit.QWebView() webInspector = QtWebKit.QWebInspector(self) page = webView.page() page.settings().setAttribute( QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) webInspector.setPage(page) webInspector.setVisible(True) splitter = QtGui.QSplitter(self) splitter.addWidget(webView) splitter.addWidget(webInspector) splitter.setSizes([3, 0]) layout.addWidget(splitter) self.setLayout(layout) webView.load( QtCore.QUrl(os.path.join(os.path.dirname(__file__), 'index.html'))) self.resize(950, 500)
def config(): app = QtGui.QApplication(sys.argv) app.setApplicationName("Cota Croche") pyObj = JS_Object() file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "public/index.html")) local_url = QtCore.QUrl.fromLocalFile(file_path) webView = QtWebKit.QWebView() # add javaScript obj in page webView.page().mainFrame().addToJavaScriptWindowObject("pyObj", pyObj) inspector = QtWebKit.QWebInspector() webView.page().settings().setAttribute( QtWebKit.QWebSettings.DeveloperExtrasEnabled, True ) inspector.setPage(webView.page()) webView.load(local_url) window = QtGui.QMainWindow() window.setWindowTitle("Cota Croche") window.resize(800, 500)# funciona para ajustar o tamanho da janela. window.setCentralWidget(webView) window.show() app.exec_()
def __init__(self, ctr, parent=None): super(SimpleBrowsers, self).__init__(parent) self.ctr = ctr self.webView = WebView(self) page = self.webView.page() #page.settings().setAttribute(QtWebKit.QWebSettings.JavascriptEnabled, False) page.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True) page.settings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) self.webInspector = QtWebKit.QWebInspector(self) self.webInspector.setPage(page) shortcut = QtGui.QShortcut(self) shortcut.setKey(QtCore.Qt.Key_F12) shortcut.activated.connect(self.toggleInspector) self.webInspector.setVisible(False) self.splitter = QtGui.QSplitter(self) self.splitter.setOrientation(QtCore.Qt.Vertical) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.addWidget(self.splitter) self.splitter.addWidget(self.webView) self.splitter.addWidget(self.webInspector) self.setLayout(self.verticalLayout)
def setupInspector(self): page = self.page() page.settings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) self.webInspector = QtWebKit.QWebInspector(self) self.webInspector.setPage(page) shortcut = QtGui.QShortcut(self) shortcut.setKey(QtCore.Qt.Key_F12) shortcut.activated.connect(self.toggleInspector) self.webInspector.setVisible(False)
def __init__(self, parent, url='about:blank'): super(WebBrowser, self).__init__(parent) # 关闭窗口时自动销毁 # self.setAttribute(Qt.Qt.WA_DeleteOnClose, True) # 显示最小和最大按钮 self.setWindowFlags(self.windowFlags() | Qt.Qt.WindowCloseButtonHint | Qt.Qt.WindowMinimizeButtonHint | Qt.Qt.WindowMaximizeButtonHint) # 修改webkit全局设置 default_settings = QtWebKit.QWebSettings.globalSettings() # 启用javascript支持 default_settings.setAttribute(QtWebKit.QWebSettings.JavascriptEnabled, True) default_settings.setAttribute( QtWebKit.QWebSettings.JavascriptCanOpenWindows, True) # 启动开发者工具支持 default_settings.setAttribute( QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) default_settings.setAttribute( QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True) default_settings.setAttribute( QtWebKit.QWebSettings.LocalStorageEnabled, True) default_settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True) # 创建浏览器子窗口 self.view = QtWebKit.QWebView() # 禁用浏览器的右键菜单(利用qwidget自带的方法) # self.view.setContextMenuPolicy(Qt.Qt.NoContextMenu) # 部分链接会调用外部浏览器打开 self.page = WebPage() self.view.setPage(self.page) # 创建开发者工具子窗口 self.wi = QtWebKit.QWebInspector() self.wi.setPage(self.view.page()) # 加载url self.view.load(QtCore.QUrl(url)) # 处理点击一些链接没有反应的问题 self.view.page().setLinkDelegationPolicy( QtWebKit.QWebPage.DelegateAllLinks) self.view.page().linkClicked.connect(self.onLinkClicked) layout = QtGui.QVBoxLayout() layout.setMargin(0) layout.addWidget(self.view) layout.addWidget(self.wi) self.setLayout(layout) self.resize(800, 600)
def __init__(self, parent=None): super(App, self).__init__(parent) x, y, w, h = 500, 200, 1024, 768 self.setGeometry(x, y, w, h) self.setFixedSize(w, h) self.url_lineedit = QtGui.QLineEdit(self) self.url_lineedit.setGeometry(0, 0, 900, 22) self.connect(self.url_lineedit, QtCore.SIGNAL('returnPressed()'), self.url_returnPressed) self.progressbar = QtGui.QProgressBar(self) self.progressbar.setGeometry(900, 0, 124, 22) self.progressbar.setMinimum(0) self.progressbar.setMaximum(100) self.webview = QtWebKit.QWebView(self) qsettings = self.webview.settings() qsettings.setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) self.inspector = QtWebKit.QWebInspector(self) self.inspector.setPage(self.webview.page()) self.inspector.setGeometry(0, h - 200, w, 200) self.inspector.setVisible(True) self.webview.setGeometry(0, 22, w, h - 200) self.connect(self.webview, QtCore.SIGNAL("loadStarted()"), self.webview_loadStarted) self.connect(self.webview, QtCore.SIGNAL("loadFinished(bool)"), self.webview_loadFinished) self.connect(self.webview, QtCore.SIGNAL('loadProgress(int)'), self.webview_loadProgress) cache = QtNetwork.QNetworkDiskCache() dir = QtGui.QDesktopServices.storageLocation( QtGui.QDesktopServices.CacheLocation) cache.setCacheDirectory(dir) self.am = self.webview.page().networkAccessManager() self.am.setCache(cache) self.cj = QtNetwork.QNetworkCookieJar() self.am.setCookieJar(self.cj) self._portal_url = "http://www.baidu.com/" self.url_lineedit.setText(self._portal_url) self.webview.load(QtCore.QUrl(self._portal_url)) self.url_lineedit.setFocus() self.setup_global_shortcuts()
def setupWebView(self, url): #Create a New Webview self.webView = QtWebKit.QWebView() #Configures it To Use Javascript, Enable Plugins, Dev Tools Etc ... for setting in ( QtWebKit.QWebSettings.globalSettings().PluginsEnabled, QtWebKit.QWebSettings.globalSettings().JavaEnabled, QtWebKit.QWebSettings.globalSettings().JavascriptEnabled, QtWebKit.QWebSettings.globalSettings().AutoLoadImages, QtWebKit.QWebSettings.globalSettings().DeveloperExtrasEnabled, QtWebKit.QWebSettings.globalSettings( ).AcceleratedCompositingEnabled, QtWebKit.QWebSettings.globalSettings().DnsPrefetchEnabled, QtWebKit.QWebSettings.globalSettings( ).LocalContentCanAccessFileUrls, QtWebKit.QWebSettings.globalSettings( ).LocalContentCanAccessRemoteUrls, QtWebKit.QWebSettings.globalSettings( ).OfflineWebApplicationCacheEnabled, QtWebKit.QWebSettings.globalSettings(). JavascriptCanOpenWindows, QtWebKit.QWebSettings.globalSettings( ).JavascriptCanAccessClipboard, QtWebKit.QWebSettings.globalSettings( ).OfflineWebApplicationCacheEnabled, QtWebKit.QWebSettings.globalSettings().WebGLEnabled, QtWebKit.QWebSettings.globalSettings().PrivateBrowsingEnabled): QtWebKit.QWebSettings.globalSettings().setAttribute(setting, True) #Splits The Page Preview In 2 Parts And Adds The WebView in The First Part self.web_view_splitter = QtGui.QSplitter(self) self.web_view_splitter.setOrientation(QtCore.Qt.Vertical) self.secondary_splitter.addWidget(self.web_view_splitter) self.web_view_splitter.addWidget(self.webView) #Creates a Web Inspector From The WebView And Puts It in The Other Part of The Splitter self.webInspector = QtWebKit.QWebInspector(self) self.webInspector.setPage(self.webView.page()) self.webInspector.setVisible(True) self.web_view_splitter.addWidget(self.webInspector) #Load Main Page self.webView.load(QtCore.QUrl(url))
def __init__(self): super(GMap, self).__init__() self.logger = logging.getLogger(__name__) if 'northgrum' in socket.getfqdn().split('.'): if keyring.get_password("system", getpass.getuser()) is None: keyring.set_password("system", getpass.getuser(), getpass.getpass()) proxy = QtNetwork.QNetworkProxy(QtNetwork.QNetworkProxy.HttpProxy, "centralproxy.northgrum.com", 80) proxy.setUser(getpass.getuser()) self.logger.info('using proxy to access the internet => user: %s, proxy: %s' % (getpass.getuser(), "centralproxy.northgrum.com")) proxy.setPassword(keyring.get_password("system", getpass.getuser())) QtNetwork.QNetworkProxy.setApplicationProxy(proxy) self.splitter = QtGui.QSplitter(self) self.splitter.setOrientation(QtCore.Qt.Vertical) self.web = QtWebKit.QWebView(self) path, file = os.path.split(os.path.realpath(__file__)) # self.web.load(QtCore.QUrl.fromLocalFile(QtCore.QFileInfo("gmaps.html").absoluteFilePath())) self.web.load(QtCore.QUrl.fromLocalFile(os.path.join(path, "gmaps.html"))) self.layout = QtGui.QVBoxLayout(self) # self.layout.addWidget(self.web) # self.web.page().mainFrame().setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff) self.web.page().settings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) self.webInspector = QtWebKit.QWebInspector(self) self.webInspector.setPage(self.web.page()) # layout = QtGui.QVBoxLayout(self) # layout.setMargin(0) self.layout.addWidget(self.splitter) self.splitter.addWidget(self.web) self.splitter.addWidget(self.webInspector) shortcut = QtGui.QShortcut(self) shortcut.setKey(QtCore.Qt.Key_F12) shortcut.activated.connect(self.toggleInspector) self.webInspector.setVisible(False)