def _load_finished(self): #This is the actual context/frame a webpage is running in. # Other frames could include iframes or such. main_page = self.view.page() main_frame = main_page.mainFrame() # ATTENTION here's the magic that sets a bridge between Python to HTML main_frame.addToJavaScriptWindowObject("app_hub", self.hub) if self.is_first_load: ## Avoid re-settings on page reload (if happened) change_setting = main_page.settings().setAttribute settings = web_core.QWebSettings change_setting(settings.DeveloperExtrasEnabled, self.debug) change_setting(settings.LocalStorageEnabled, True) change_setting(settings.OfflineStorageDatabaseEnabled, True) change_setting(settings.OfflineWebApplicationCacheEnabled, True) change_setting(settings.JavascriptCanOpenWindows, True) change_setting(settings.PluginsEnabled, False) # Show web inspector if debug on if self.debug: self.inspector = web_core.QWebInspector() self.inspector.setPage(self.view.page()) self.inspector.show() self.is_first_load = False #Tell the HTML side, we are open for business main_frame.evaluateJavaScript("app_ready()")
def run_gui(self, inspector=False): self.view.load(qt_core.QUrl(self.url)) change_setting = self.view.page().settings().setAttribute settings = web_core.QWebSettings change_setting(settings.DeveloperExtrasEnabled, True) change_setting(settings.LocalStorageEnabled, True) change_setting(settings.OfflineStorageDatabaseEnabled, True) change_setting(settings.OfflineWebApplicationCacheEnabled, True) change_setting(settings.PluginsEnabled, True) self.view.show() if inspector: self.inspector = web_core.QWebInspector() self.inspector.setPage(self.view.page()) self.inspector.show() self.app.exec_()
def _load_finished(self): #This is the actual context/frame a webpage is running in. # Other frames could include iframes or such. main_page = self.view.page() main_frame = main_page.mainFrame() # ATTENTION here's the magic that sets a bridge between Python to HTML main_frame.addToJavaScriptWindowObject("app_hub", self.hub) if self.is_first_load: ## Avoid re-settings on page reload (if happened) change_setting = main_page.settings().setAttribute settings = web_core.QWebSettings change_setting(settings.DeveloperExtrasEnabled, self.debug) change_setting(settings.LocalStorageEnabled, True) change_setting(settings.OfflineStorageDatabaseEnabled, True) change_setting(settings.OfflineWebApplicationCacheEnabled, True) change_setting(settings.JavascriptCanOpenWindows, True) change_setting(settings.PluginsEnabled, False) # Show web inspector if debug on if self.debug: self.inspector = web_core.QWebInspector() self.inspector.setPage(self.view.page()) self.inspector.show() #Tell the HTML side, we are open for business main_frame.evaluateJavaScript("app_ready()") # send pool list to HTML for rendering self.hub.create_pool_list() # Resize main window to fit web content (avoid scroll bars showed) main_page.setViewportSize(main_frame.contentsSize()) #self.setFixedSize(860, 360) # resume mining jobs for p in self.hub.pools.all_pools: if 'is_mining' in p and p['is_mining']: self.hub.start_stop_mining(p['id']) self.is_first_load = False
def __init__(self): QtGui.QWidget.__init__(self) self.view = QtWebKit.QWebView(self) self.view.setWindowFlags(QtCore.Qt.Dialog) self.view.settings().setAttribute( QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) self.inspector = QtWebKit.QWebInspector(self) self.inspector.setPage(self.view.page()) self.inspector.setWindowFlags(QtCore.Qt.Dialog) self.input = QtGui.QLineEdit(self) self.picture = QtGui.QLineEdit(self) self.output = QtGui.QTextBrowser(self) self.nasm = QtNetwork.QNetworkAccessManager(self) self.accessToken = None self.expires = None layout = QtGui.QVBoxLayout(self) self.setLayout(layout) layout.addWidget(self.input) layout.addWidget(self.picture) layout.addWidget(self.output) self.view.loadFinished.connect(self.onLoadFinished) self.input.returnPressed.connect(self.onReturnPressed)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) self._signal = SignalMap() self._popup = None url = 'http://localhost:{}/map.html'.format(server.PORT) self._url = QtCore.QUrl(url) self._retries = RETRIES self._labelLoad = QtGui.QLabel() self._labelLoad.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self._labelLoad.setAlignment(QtCore.Qt.AlignCenter) anim = get_ui_path('loader.gif') movie = QtGui.QMovie(anim) self._labelLoad.setMovie(movie) movie.start() self._webMap = QtWebKit.QWebView(self) self._webMap.setContextMenuPolicy(QtCore.Qt.NoContextMenu) self._webMap.setAcceptDrops(False) self._webMap.setVisible(False) self._webMap.loadFinished.connect(self.__on_load_finished) self._webMap.linkClicked.connect(self.__on_link_clicked) page = self._webMap.page() page.setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateExternalLinks) manager = page.networkAccessManager() manager.finished[QtNetwork.QNetworkReply].connect(self.__loaded) settings = page.settings() settings.setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) self._inspector = QtWebKit.QWebInspector(self) self._inspector.setPage(page) self._inspector.setVisible(False) shortcut = QtGui.QShortcut(self) shortcut.setKey(QtGui.QKeySequence(QtCore.Qt.Key_F12)) shortcut.activated.connect(self.__on_inspector) frame = self._webMap.page().mainFrame() frame.setScrollBarPolicy(QtCore.Qt.Orientation.Horizontal, QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) frame.setScrollBarPolicy(QtCore.Qt.Orientation.Vertical, QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) self._controls = WidgetMapControls(self, self._webMap) splitter = QtGui.QSplitter(self) splitter.setOrientation(QtCore.Qt.Vertical) splitter.addWidget(self._labelLoad) splitter.addWidget(self._webMap) splitter.addWidget(self._inspector) layoutV = QtGui.QVBoxLayout() layoutV.addWidget(splitter) layoutV.addWidget(self._controls) self.setLayout(layoutV) self._webMap.load(self._url)