class KontenaApp(object): def __init__(self, argv): self.app = app = QApplication(argv) self.browser = QWebView() requests_table = RequestsTable() manager = KontenaManager(self, requests_table) page = QWebPage() page.setNetworkAccessManager(manager) self.browser.setPage(page) grid = QGridLayout() grid.addWidget(self.browser, 0, 0) # grid.addWidget(requests_table, 4, 0) self.window = QWidget() self.window.setLayout(grid) def open_app(self, data): data.seek(23) self.kontena = ZipFile(data) def read_file(self, file_name): return self.kontena.read(file_name) def exe(self): self.browser.load(QUrl('file:///index.html')) self.window.show() sys.exit(self.app.exec_())
def __init__(self, title, url, width, height, resizable, fullscreen, min_size, webview_ready): super(BrowserView, self).__init__() BrowserView.instance = self self._file_name_semaphor = threading.Semaphore(0) self.resize(width, height) self.setWindowTitle(title) if not resizable: self.setFixedSize(width, height) if fullscreen: self.showFullScreen() self.setMinimumSize(min_size[0], min_size[1]) self.view = QWebView(self) self.view.setContextMenuPolicy( QtCore.Qt.NoContextMenu) # disable right click context menu if url != None: self.view.setUrl(QtCore.QUrl(url)) self.setCentralWidget(self.view) self.url_trigger.connect(self._handle_load_url) self.html_trigger.connect(self._handle_load_html) self.dialog_trigger.connect(self._handle_file_dialog) self.destroy_trigger.connect(self._handle_destroy_window) self.move(QApplication.desktop().availableGeometry().center() - self.rect().center()) self.activateWindow() self.raise_() webview_ready.set()
def show(self): self.webview = QWebView() self.webview.setPage(self.webpage) window = self.webview.window() window.setAttribute(Qt.WA_DeleteOnClose) self.application.syncX() self.webview.show()
def __init__(self,parent=None): ''' zoom: zoom out times openedpg: current openedpage signal 'openUrl' will be emited(with param url:unicode) signal 'openatnewtab' will be emited(with param url:unicode) signal 'openremoteatnewtab' will be emited(with param url:unicode) signal 'openRemoteUrl' will be emited(with param url:unicode) ''' QWebView.__init__(self,parent) self.page().setNetworkAccessManager(PyChmNetworkAccessManager(self)) self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) #self.setUrl(QtCore.QUrl('http://www.baidu.com')) self.connect(self,QtCore.SIGNAL('linkClicked(const QUrl&)'),self.onLinkClicked) # self.connect(self.zob,QtCore.SIGNAL('clicked()'),self.zoomout) # self.connect(self.zib,QtCore.SIGNAL('clicked()'),self.zoomin) # self.connect(self.normb,QtCore.SIGNAL('clicked()'),self.normsize) # self.connect(self.bb,QtCore.SIGNAL('clicked()'),self.back) # self.connect(self.fb,QtCore.SIGNAL('clicked()'),self.forward) self.connect(self,QtCore.SIGNAL('loadFinished(bool)'),self.onLoadFinished) self.zoom=1.0 self.setTextSizeMultiplier(1.0) self.reload() self.openedpg=None self.scrolltopos=0
class Scraper(QObject): def __init__(self): self.app = QApplication(sys.argv) QObject.__init__(self,self.app) self.view = QWebView() self.page = self.view.page() #QWebPage(self.app) self.page.mainFrame().loadFinished.connect(self.loadFinished) self.db = {} self.attset = Set() self.view.show() def start(self): print "loading %s"%self.url self.load(self.url) def load(self,url): self.page.mainFrame().setUrl(QUrl(url)) def loadFinished(self): document = self.page.mainFrame().documentElement() document.evaluateJavaScript(""" var evt = document.createEvent('MouseEvents'); evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); Element.prototype.click = function() { this.dispatchEvent(evt); }; """) print "yay"
def initUI(self,x,y,url): self.setGeometry(x,y,650,400) print url browser = QWebView(self) browser.load(QUrl(url)) browser.show()
def __init__(self, name, app, scope, r_server, delay=1, proxy=None, forbidden_extensions=None, allowed_regex='.*?'): QWebView.__init__(self) self.name = name self.app = app self.scope = scope self.r_server = r_server self.delay = delay self.current_level = -1 self.async_res = [] self._t_pool = dict() LOGGER.debug("<%s> Initialized" % name) manager = NetworkAccessManager(proxy, forbidden_extensions, allowed_regex) manager.finished.connect(self._on_finished) webpage = WebPage("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.94 Chrome/37.0.2062.94 Safari/537.36") webpage.setNetworkAccessManager(manager) #webpage.mainFrame().javaScriptWindowObjectCleared.connect(self._on_jsWinObjCleared) self.setHtml('<html><head></head><body><h1>Multithreaded Crawler</h1><p>Waiting for orders, sir!</p></body></html>', QUrl('http://localhost')) self.setPage(webpage) self.loadFinished.connect(self._on_loadFinished) self.settings().setAttribute(QWebSettings.PluginsEnabled, True) self.settings().setAttribute(QWebSettings.JavaEnabled, True) self.settings().setAttribute(QWebSettings.AutoLoadImages, True) self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
def initUI(self): view = QWebView() view.setHtml(self.html) self.setCentralWidget(view) self.resize(450, 550) self.setWindowTitle('Help')
def __init__(self, html): super(Window, self).__init__() view = QWebView(self) layout = QVBoxLayout(self) layout.addWidget(view) view.setPage(MyWebPage()) view.setHtml(html.htmlString())
def __init__(self): super(WebRender, self).__init__() vbox, temporary_directory = QVBoxLayout(self), mkdtemp() # Web Frame self.webFrame = QWebView() # QWebView = QWebFrame + QWebSettings self.webFrame.setStyleSheet( "QWebView{ background:#fff }") # no dark bg settings = self.webFrame.settings() # QWebSettings instance settings.setDefaultTextEncoding("utf-8") settings.setIconDatabasePath(temporary_directory) settings.setLocalStoragePath(temporary_directory) settings.setOfflineStoragePath(temporary_directory) settings.setOfflineWebApplicationCachePath(temporary_directory) settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True) settings.setAttribute(QWebSettings.LocalStorageEnabled, True) settings.setAttribute(QWebSettings.OfflineStorageDatabaseEnabled, True) settings.setAttribute(QWebSettings.PluginsEnabled, True) settings.setAttribute(QWebSettings.DnsPrefetchEnabled, True) settings.setAttribute(QWebSettings.JavascriptCanOpenWindows, True) settings.setAttribute(QWebSettings.JavascriptCanCloseWindows, True) settings.setAttribute(QWebSettings.JavascriptCanAccessClipboard, True) settings.setAttribute(QWebSettings.SpatialNavigationEnabled, True) settings.setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True) settings.setAttribute(QWebSettings.OfflineWebApplicationCacheEnabled, True) vbox.addWidget(self.webFrame)
def _create_view(self, svg, section=None): view = QWebView(self) view.setRenderHint(QtGui.QPainter.TextAntialiasing, False) view.setPage(LoggingWebPage()) view.setContextMenuPolicy(QtCore.Qt.PreventContextMenu) # the HTML page that will contain the SVG path = os.path.dirname(os.path.realpath(__file__)) html = QUrl(os.path.join(path, "index.html")) # make file configurable # setup the JS interface frame = view.page().mainFrame() self.js = JSInterface(frame) #self.js.registered.connect(self.register) self.js.visibility.connect(self.listen) # mouse interaction signals self.clicked = self.js.leftclicked self.rightClicked = self.js.rightclicked # Inject JSInterface into the JS global namespace as "Widget" frame.addToJavaScriptWindowObject('Widget', self.js) # confusing? # when the page (and all the JS) has loaded, load the SVG def load_svg(): print "blorrt", svg self.js.load(svg, section) view.loadFinished.connect(load_svg) # load the page # print "url", QUrl(url) view.load(html) return view
def __init__(self, parent, network_analyzer, url=None): QWidget.__init__(self, parent) self.webView = QWebView() self.webView.setPage(QgepWebPage(self.webView)) self.networkAnalyzer = network_analyzer settings = QSettings() layout = QVBoxLayout(self) if url is None: url = settings.value( "/QGEP/SvgProfilePath", u'qrc:///plugins/qgepplugin/svgprofile/index.html') developermode = settings.value("/QGEP/DeveloperMode", False, type=bool) if developermode is True: self.webView.page().settings().setAttribute( QWebSettings.DeveloperExtrasEnabled, True) else: self.webView.setContextMenuPolicy(Qt.NoContextMenu) self.webView.load(QUrl(url)) self.frame = self.webView.page().mainFrame() self.frame.javaScriptWindowObjectCleared.connect(self.initJs) layout.addWidget(self.webView)
def mouseReleaseEvent(self, mouseEvent): if self.clickedInScrollBar: self.clickedInScrollBar = False else: if self.ignored.count(mouseEvent): self.ignored.remove(mouseEvent) return QWebView.mousePressEvent(self, mouseEvent) if self.scrolling: self.pressed = False self.scrolling = False self.handIsClosed = False QApplication.restoreOverrideCursor() return if self.pressed: self.pressed = False self.scrolling = False self.handIsClosed = False QApplication.restoreOverrideCursor() event1 = QMouseEvent(QEvent.MouseButtonPress, self.position, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier) event2 = QMouseEvent(mouseEvent) self.ignored.append(event1) self.ignored.append(event2) QApplication.postEvent(self, event1) QApplication.postEvent(self, event2) return return QWebView.mouseReleaseEvent(self, mouseEvent)
def __init__(self, container, do_embed=False): self.container = container self.log = self.logger = container.log self.do_embed = do_embed must_use_qt() self.parser = CSSParser(loglevel=logging.CRITICAL, log=logging.getLogger('calibre.css')) self.loop = QEventLoop() self.view = QWebView() self.page = Page(self.log) self.view.setPage(self.page) self.page.setViewportSize(QSize(1200, 1600)) self.view.loadFinished.connect(self.collect, type=Qt.QueuedConnection) self.render_queue = list(container.spine_items) self.font_stats = {} self.font_usage_map = {} self.font_spec_map = {} self.font_rule_map = {} self.all_font_rules = {} QTimer.singleShot(0, self.render_book) if self.loop.exec_() == 1: raise Exception( 'Failed to gather statistics from book, see log for details')
class DocWindow(QWidget): app = None def __init__(self, app): super(DocWindow, self).__init__() DocWindow.app = app self.vlayout = QVBoxLayout() self.view = DocView() self.backbtn = QPushButton('Back') self.closebtn = QPushButton('Close') self.vlayout.setContentsMargins(1, 1, 1, 1) self.vlayout.setSpacing(1) self.vlayout.addWidget(self.view) hlayout = QHBoxLayout() buttonbox = QWidget() buttonbox.setLayout(hlayout) self.vlayout.addWidget(buttonbox) hlayout.addWidget(self.closebtn) hlayout.addWidget(self.backbtn) self.closebtn.clicked.connect(self.hide) self.backbtn.clicked.connect(self.view.back) self.setLayout(self.vlayout) self.setWindowTitle('BlueSky documentation') def show_cmd_doc(self, cmd): if not cmd: cmd = 'Command-Reference' self.view.load( QUrl.fromLocalFile( QFileInfo('data/html/' + cmd.lower() + '.html').absoluteFilePath()))
class AboutPage(QtGui.QWidget): def __init__(self, banner_path=None, content=None): QtGui.QWidget.__init__(self) if banner_path is None: banner_path = shared_data(openalea.oalab, 'icons/logo/banner.png') self._lay = QtGui.QVBoxLayout(self) p = QtGui.QSizePolicy self._banner = QtGui.QLabel() self._banner.setStyleSheet("QLabel { background-color : #ffffff;}") banner = QtGui.QPixmap(banner_path) size = banner.size() self._banner.setPixmap(banner) self._content = QWebView() if hasattr(self._content, "setReadOnly"): self._content.setReadOnly(True) self._content.setHtml(content) self._footer = QtGui.QLabel() self._footer.setStyleSheet("QLabel { background-color : #459454;}") self._lay.addWidget(self._banner) self._lay.addWidget(self._content) self._lay.addWidget(self._footer) self._lay.setContentsMargins(0, 0, 0, 0) self._lay.setSpacing(0)
def __init__(self, banner_path=None, content=None): QtGui.QWidget.__init__(self) if banner_path is None: banner_path = shared_data(openalea.oalab, 'icons/logo/banner.png') self._lay = QtGui.QVBoxLayout(self) p = QtGui.QSizePolicy self._banner = QtGui.QLabel() self._banner.setStyleSheet("QLabel { background-color : #ffffff;}") banner = QtGui.QPixmap(banner_path) size = banner.size() self._banner.setPixmap(banner) self._content = QWebView() if hasattr(self._content, "setReadOnly"): self._content.setReadOnly(True) self._content.setHtml(content) self._footer = QtGui.QLabel() self._footer.setStyleSheet("QLabel { background-color : #459454;}") self._lay.addWidget(self._banner) self._lay.addWidget(self._content) self._lay.addWidget(self._footer) self._lay.setContentsMargins(0, 0, 0, 0) self._lay.setSpacing(0)
def __init__(self, opts, log, cover_data=None, toc=None): from calibre.gui2 import is_ok_to_use_qt from calibre.utils.podofo import get_podofo if not is_ok_to_use_qt(): raise Exception('Not OK to use Qt') QObject.__init__(self) self.logger = self.log = log self.podofo = get_podofo() self.doc = self.podofo.PDFDoc() self.loop = QEventLoop() self.view = QWebView() self.page = Page(opts, self.log) self.view.setPage(self.page) self.view.setRenderHints(QPainter.Antialiasing | QPainter.TextAntialiasing | QPainter.SmoothPixmapTransform) self.view.loadFinished.connect(self._render_html, type=Qt.QueuedConnection) for x in (Qt.Horizontal, Qt.Vertical): self.view.page().mainFrame().setScrollBarPolicy( x, Qt.ScrollBarAlwaysOff) self.render_queue = [] self.combine_queue = [] self.tmp_path = PersistentTemporaryDirectory(u'_pdf_output_parts') self.opts = opts self.cover_data = cover_data self.paged_js = None self.toc = toc
def __init__(self, parent=None): super(Info, self).__init__(parent) self.resize(460, 420) self.setStyleSheet("background-color:#3B4141;") self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) #self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Popup) self.layout = QtGui.QVBoxLayout() self.setLayout(self.layout) self.web_view = QWebView() self.layout.addWidget(self.web_view) self.quitAction = QtGui.QAction("&Quit", self, triggered=QtGui.qApp.quit) self.on_offAction = QtGui.QAction("&Switch", self, triggered=self.on_off) self.trayIconMenu = QtGui.QMenu(self) self.trayIconMenu.addAction(self.on_offAction) self.trayIconMenu.addSeparator() self.trayIconMenu.addAction(self.quitAction) self.trayIconMenu.setStyleSheet("color:#ffffff;font-size:18px") self.trayIcon = QtGui.QSystemTrayIcon(self) self.trayIcon.setContextMenu(self.trayIconMenu) self.trayIcon.setIcon(QtGui.QIcon(":/imgs/dictionary-icon.png")) self.trayIcon.show() self.cpb = QtGui.QApplication.clipboard() self.cpb.selectionChanged.connect(self.query) self.flag = True
def brow(self): app1 = QtGui.QApplication(sys.argv) grid = QGridLayout() browser = QWebView() global browser url_input = UrlInput(browser) requests_table = RequestsTable() manager = Manager(requests_table) page = QWebPage() page.setNetworkAccessManager(manager) browser.setPage(page) js_eval = JavaScriptEvaluator(page) # action_box = ActionInputBox(page) grid.addWidget(url_input, 1, 0) # grid.addWidget(action_box, 2, 0) grid.addWidget(browser, 3, 0) # grid.addWidget(requests_table, 4, 0) # grid.addWidget(js_eval, 5, 0) main_frame = QWidget() main_frame.setLayout(grid) main_frame.show() sys.exit(app.exec_())
def __init__(self, vertical, parent=None): QWebView.__init__(self, parent) s = self.settings() s.setAttribute(s.JavascriptEnabled, False) self.vertical = vertical self.page().setLinkDelegationPolicy(self.page().DelegateAllLinks) self.linkClicked.connect(self.link_activated) self._link_clicked = False self.setAttribute(Qt.WA_OpaquePaintEvent, False) palette = self.palette() self.setAcceptDrops(False) palette.setBrush(QPalette.Base, Qt.transparent) self.page().setPalette(palette) self.css = P('templates/book_details.css', data=True).decode('utf-8') for x, icon in [('remove_format', 'trash.png'), ('save_format', 'save.png'), ('restore_format', 'edit-undo.png'), ('copy_link', 'edit-copy.png'), ('manage_author', 'user_profile.png'), ('compare_format', 'diff.png')]: ac = QAction(QIcon(I(icon)), '', self) ac.current_fmt = None ac.current_url = None ac.triggered.connect(getattr(self, '%s_triggerred' % x)) setattr(self, '%s_action' % x, ac)
def initialize(self): self.loaded = 1 grid = QGridLayout() self.browser = QWebView() # handle clicking of links self.browser.linkClicked.connect(self.handleLinkClicked) url = 'file:///' + os.path.dirname( os.path.realpath(__file__)) + '/../html/index.html' self.url_input = UrlInput(self.browser) # Load the main page of the website self.loadIndexPage() # This does something for following links self.browser.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) # url_input at row 1 column 0 of our grid grid.addWidget(self.url_input, 1, 0) # Button for adding link self.lbutton = QPushButton('Add external link', self) self.lbutton.clicked.connect(self.lbuttonHandle) # Button placed in row 1 column 1 or grid grid.addWidget(self.lbutton, 1, 1) # Button for adding link to internal link self.nbutton = QPushButton('Add internal link', self) self.nbutton.clicked.connect(self.nbuttonHandle) # button at row 1 column 2 of our grid grid.addWidget(self.nbutton, 1, 2) # Button for rebuilding site # self.rbutton = QPushButton('Rebuild site', self) # self.rbutton.clicked.connect(self.rbuttonHandle) # # button at row 1 column 1 of our grid # grid.addWidget( self.rbutton, 1, 3 ) # browser frame below it grid.addWidget(self.browser, 2, 0, 1, 4) self.setLayout(grid)
class BookView(QSplitter): def __init__(self, parent=None): super(BookView, self).__init__(parent=parent) self.create_layout() self.create_connections() def create_layout(self): self.web_view = QWebView() self.chapter_list = QListWidget() self.next_button = QPushButton("Next chapter") self.previous_button = QPushButton("Previous chapter") hbox = QHBoxLayout() hbox.addStretch() hbox.addWidget(self.previous_button) hbox.addWidget(self.next_button) vbox = QVBoxLayout() vbox.addWidget(QLabel("Chapters")) vbox.addWidget(self.chapter_list) vbox.addLayout(hbox) widget = QWidget() widget.setLayout(vbox) self.addWidget(self.web_view) self.addWidget(widget) def create_connections(self): chlist = self.chapter_list self.connect( self.next_button, SIGNAL("clicked()"), lambda: chlist.setCurrentRow(0 if chlist.currentRow( ) == chlist.count() - 1 else chlist.currentRow() + 1)) self.connect( self.previous_button, SIGNAL("clicked()"), lambda: chlist.setCurrentRow(chlist.count( ) - 1 if chlist.currentRow() == 0 else chlist.currentRow() - 1)) self.connect(self.chapter_list, SIGNAL("currentRowChanged(int)"), self.set_chapter) page = self.web_view.page() page.setLinkDelegationPolicy(QWebPage.DelegateAllLinks) def set_chapter(self, num=None): if num is None: num = self.chapter_list.currentRow() if num < 0: num = len(self.book.chapters) - 1 elif num >= len(self.book.chapters): num = 0 self.web_view.setHtml( self.book.get_chapter(num).decode(encoding="utf-8")) def load_book(self, book_id): self.book = Book(book_id) self.chapter_list.clear() for chapter in self.book.chapters: self.chapter_list.addItem(chapter[0]) self.chapter_list.setCurrentRow(0)
def showAuthDialog(self): from PyQt4.QtWebKit import QWebView win = QWebView() win.titleChanged.connect(self.getKey) win.show() win.load(QUrl(self.auth_url))
def __init__(self, base_url=None, gui=False, user_agent=None, proxy=None, allowed_extensions=['.html', '.css', '.js'], timeout=20, cache_file=None, debug=False): """ base_url is the domain that will be crawled gui is whether to show webkit window or run headless user_agent is used to set the user-agent when downloading content proxy is the proxy to download through allowed_extensions are the media types to allow timeout is the maximum amount of seconds to wait for a request """ self.app = QApplication(sys.argv) # must instantiate first QWebView.__init__(self) webpage = WebPage(user_agent or settings.user_agents[0]) manager = NetworkAccessManager(proxy, allowed_extensions) manager.finished.connect(self.finished) webpage.setNetworkAccessManager(manager) self.setPage(webpage) self.setHtml('<html><head></head><body>No content loaded</body></html>', QUrl('http://localhost')) self.timeout = timeout self.cache = pdict.PersistentDict(cache_file or settings.cache_file) # cache to store webpages self.base_url = base_url self.debug = debug self.jquery_lib = None QTimer.singleShot(0, self.crawl) # start crawling when all events processed if gui: self.show() self.app.exec_() # start GUI thread
def __init__(self): super(TweetWindow, self).__init__() self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Popup | Qt.Tool) self.setAttribute(Qt.WA_TranslucentBackground, True) self.resize(550, 520) point = Utils.getDesktopCenterPoint(self) self.move(point["x"], point["y"]) self.webview = QWebView(self) self.webview.settings().setAttribute(QWebSettings.JavascriptEnabled, True) self.webview.settings().setAttribute( QWebSettings.DeveloperExtrasEnabled, True) self.webview.settings().setAttribute( QWebSettings.LocalContentCanAccessRemoteUrls, True) self.webview.settings().setAttribute(QWebSettings.LocalStorageEnabled, True) self.webview.settings().setLocalStoragePath(AppProperty.HomeDir + "/data") #self.webview.setContextMenuPolicy(Qt.NoContextMenu) self.webview.settings().setDefaultTextEncoding("utf-8") self.webview.setGeometry(1, 1, self.width() - 2, self.height() - 2) self.webview.page().mainFrame().javaScriptWindowObjectCleared.connect( self.setJavaScriptObject) self.webview.setStyleSheet( "QWebView{background-color: rgba(255, 193, 245, 0%); }") self.webview.page().networkAccessManager().setCookieJar( AppProperty.CookieJar) self.webview.load( QUrl.fromLocalFile(AppProperty.HomeDir + "/html/tweetWindow.html"))
def __init__(self): QWebView.__init__(self) self.createTrayIcon() self.resize(400, 200) self.setHtml(""" <script> function message() { return "jsClicked!"; } </script> <h1>QtWebKit + Python sample program</h1> <input type="button" value="Click JavaScript!" onClick="alert('[javascript] ' + message())"/> <input type="button" value="Click int!" onClick="alert('[python] ' + python.message(5))"/> <input type="button" value="Click string!" onClick="alert('[python] ' + python.message1('55','1f'))"/> <br /> """) self.show() self.trayIcon.show()
def __init__(self, URL, process=None, main=None): QWidget.__init__(self) BaseCentralWidget.__init__(self) self.path = URL self.process = process v_box = QVBoxLayout(self) #Web Frame QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True) self.webFrame = QWebView() self.webFrame.setAcceptDrops(False) factory = WebPluginFactory(self, main) self.webFrame.page().setPluginFactory(factory) self.webFrame.load(QUrl(URL)) v_box.addWidget(self.webFrame) if process is not None: time.sleep(0.5) self.webFrame.reload() if self.path.endswith( 'startPage.html') and sys.platform.find('win') != -1: content = manage_files.read_file_content(self.path) pathCss = os.path.join(resources.PRJ_PATH, 'doc', 'styles', 'ninja.css') pathJs = os.path.join(resources.PRJ_PATH, 'doc', 'rsc') content = content.replace('styles/ninja.css', pathCss).replace('src="rsc', 'src="' + pathJs) self.webFrame.setHtml(content)
class DocWindow(QWidget): app = None def __init__(self, app): super(DocWindow, self).__init__() DocWindow.app = app self.vlayout = QVBoxLayout() self.view = DocView() self.backbtn = QPushButton('Back') self.closebtn = QPushButton('Close') self.vlayout.setContentsMargins(1, 1, 1, 1) self.vlayout.setSpacing(1) self.vlayout.addWidget(self.view) hlayout = QHBoxLayout() buttonbox = QWidget() buttonbox.setLayout(hlayout) self.vlayout.addWidget(buttonbox) hlayout.addWidget(self.closebtn) hlayout.addWidget(self.backbtn) self.closebtn.clicked.connect(self.hide) self.backbtn.clicked.connect(self.view.back) self.setLayout(self.vlayout) self.setWindowTitle('BlueSky documentation') def show_cmd_doc(self, cmd): if not cmd: cmd = 'Command-Reference' self.view.load(QUrl.fromLocalFile(QFileInfo('data/html/' + cmd.lower() + '.html').absoluteFilePath()))
def __init__(self, *args): QWebView.__init__(self, *args) self.gui = None self.tags = '' self.setPage(NPWebPage()) self.page().networkAccessManager().setCookieJar(QNetworkCookieJar()) http_proxy = get_proxies().get('http', None) if http_proxy: proxy_parts = urlparse(http_proxy) proxy = QNetworkProxy() proxy.setType(QNetworkProxy.HttpProxy) if proxy_parts.username: proxy.setUser(proxy_parts.username) if proxy_parts.password: proxy.setPassword(proxy_parts.password) if proxy_parts.hostname: proxy.setHostName(proxy_parts.hostname) if proxy_parts.port: proxy.setPort(proxy_parts.port) self.page().networkAccessManager().setProxy(proxy) self.page().setForwardUnsupportedContent(True) self.page().unsupportedContent.connect(self.start_download) self.page().downloadRequested.connect(self.start_download) self.page().networkAccessManager().sslErrors.connect( self.ignore_ssl_errors)
def __init__(self, base_url=None, gui=False, user_agent=None, proxy=None, allowed_media=None, allowed_regex='.*?', timeout=20, delay=5, enable_plugins=True):#, cache_file=None): """ base_url is the domain that will be crawled gui is whether to show webkit window or run headless user_agent is used to set the user-agent when downloading content proxy is a QNetworkProxy to download through allowed_media are the media extensions to allow allowed_regex is a regular expressions of URLS to allow timeout is the maximum amount of seconds to wait for a request delay is the minimum amount of seconds to wait between requests """ self.app = QApplication(sys.argv) # must instantiate first QWebView.__init__(self) webpage = WebPage(user_agent or random.choice(settings.user_agents)) allowed_media = allowed_media or ['css', 'js'] manager = NetworkAccessManager(proxy, allowed_media, allowed_regex) manager.finished.connect(self.finished) webpage.setNetworkAccessManager(manager) self.setPage(webpage) self.setHtml('<html><head></head><body>No content loaded</body></html>', QUrl('http://localhost')) self.timeout = timeout self.delay = delay #self.cache = pdict.PersistentDict(cache_file or settings.cache_file) # cache to store webpages self.base_url = base_url self.jquery_lib = None #enable flash plugin etc. self.settings().setAttribute(QWebSettings.PluginsEnabled, enable_plugins) #XXXQTimer.singleShot(0, self.run) # start crawling when all events processed if gui: self.show()
def __init__(self, title, url, width, height, resizable, fullscreen): super(BrowserView, self).__init__() BrowserView.instance = self self.resize(width, height) self.setWindowTitle(title) if not resizable: self.setFixedSize(width, height) if fullscreen: self.showFullScreen() self.view = QWebView(self) self.view.setUrl(QtCore.QUrl(url)) #layout = QVBoxLayout(self) #self.layout.setContentsMargins(0, 0, 0, 0) #self.layout.addWidget(self.view) self.setCentralWidget(self.view) self.trigger.connect(self._handle_load_url) self.move(QApplication.desktop().availableGeometry().center() - self.rect().center()) self.activateWindow() self.raise_()
class TestWindow(QtGui.QWidget): def __init__(self, parent = None): super(TestWindow, self).__init__(parent) self.palette = QtGui.QPalette() self.gridLayout = QtGui.QGridLayout() self.centralWidget = QtGui.QWidget() self.button = QtGui.QPushButton("Click") self.setWindowTitle("UNIX") self.resize(1200,700) self.button.clicked.connect(self.clicked) self.b = QWebView() self.b.load(QUrl('http://www.google.com')) IEdit = QtGui.QLineEdit() self.Trans = QtGui.QTextEdit() self.gridLayout.addWidget(IEdit,0,0) self.gridLayout.addWidget(self.button,1,0) self.gridLayout.addWidget(self.b,2,0) self.gridLayout.addWidget(self.Trans,3,0) self.setLayout(self.gridLayout) def clicked(self): self.b.load(QUrl('http://yahoo.com.tw')) self.Trans.setText('HI')
def __init__(self, network_manager, splash_proxy_factory, splash_request, verbose=False): self.network_manager = network_manager self.web_view = QWebView() self.web_page = SplashQWebPage() self.web_page.setNetworkAccessManager(self.network_manager) self.web_view.setPage(self.web_page) self.web_view.setAttribute(Qt.WA_DeleteOnClose, True) settings = self.web_page.settings() settings.setAttribute(QWebSettings.JavascriptEnabled, True) settings.setAttribute(QWebSettings.PluginsEnabled, False) settings.setAttribute(QWebSettings.PrivateBrowsingEnabled, True) settings.setAttribute(QWebSettings.LocalStorageEnabled, True) settings.setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True) self.web_page.mainFrame().setScrollBarPolicy(Qt.Vertical, Qt.ScrollBarAlwaysOff) self.web_page.mainFrame().setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff) self.splash_request = splash_request self.web_page.splash_request = splash_request self.web_page.splash_proxy_factory = splash_proxy_factory self.verbose = verbose self.deferred = defer.Deferred()
def __init__(self, html, resolution): QWebView.__init__(self) self.resolution = resolution self.finished = False self.out = "web2png.%i.png"%int(random.randint(0,1000)) #self.web_view = QWebView() #self.css_file = QString('/home/ddimitrov/wikiwsd/data/wikipedia_css.css') #path = os.getcwd() #self.settings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True) #self.settings().setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True) #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile("wikipedia_css.css")) #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile(QString('file:///home/ddimitrov/wikiwsd/wikipedia_css.css'))) #print self.web_view.settings().userStyleSheetUrl() #self.web_view.settings().setAttribute(QWebSettings.AutoLoadImages, False) #self.web_view.settings().setAttribute(QWebSettings.JavascriptEnabled, False) #self.setCentralWidget(self.web_view) #self.resize(resolution[0], resolution[1]) self.loadFinished.connect(self._load_finished) #self.loadProgress.connect(self._loadProgress) self.setHtml(html)
def __init__(self, parent): super(HtmlViewerWidget, self).__init__(parent) self.setLayout(QGridLayout()) self.layout().setContentsMargins(0, 0, 0, 0) self.view = QWebView() self.view.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) self.frame = QFrame() self.frame.setLayout(QGridLayout()) self.frame.layout().setContentsMargins(0, 0, 0, 0) self.toolbar = QToolBar() self.spacer = QWidget() self.spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.copyAction = self.toolbar.addAction(QIcon(":/icons/clipboard"), "Copy Text") self.label = QLabel() self.closeAction = self.toolbar.addAction(QIcon(":/icons/cancel"), "Close") self.spaceraction = self.toolbar.insertWidget(self.closeAction, self.spacer) self.labelaction = self.toolbar.insertWidget(self.spaceraction, self.label) self.closeAction.triggered.connect(self.close) self.copyAction.triggered.connect(self.copy_text) self.layout().addWidget(self.frame) self.frame.layout().addWidget(self.toolbar) self.frame.layout().addWidget(self.view) self.effect = QGraphicsOpacityEffect() self.label.setGraphicsEffect(self.effect) self.anim = QPropertyAnimation(self.effect, "opacity") self.anim.setDuration(2000) self.anim.setStartValue(1.0) self.anim.setEndValue(0.0) self.anim.setEasingCurve(QEasingCurve.OutQuad)
class HelpWidget(QtGui.QDialog): force_quit = QtCore.pyqtSignal() def __init__(self, parent=None): super(HelpWidget, self).__init__(parent) self._layout = None self._msg_widget = None self._url_widget = None self._init_ui() return def _init_ui(self): self._layout = QtGui.QVBoxLayout(self) man_paths = self._get_man_paths() if man_paths is None: self._init_message() else: self._init_help(man_paths) self.setLayout(self._layout) self.resize(900, 800) self.setWindowTitle("DTOcean User Manual") return def _init_message(self): text = "No manuals installated" self._msg_widget = Message(self, text) self._layout.addWidget(self._msg_widget) return def _init_help(self, path_dict): index_path = os.path.join(path_dict["man_user_path"], "index.html") url = QUrl.fromLocalFile(index_path) self._url_widget = QWebView(self) self._url_widget.load(url) self._url_widget.show() self._layout.addWidget(self._url_widget) return def _get_man_paths(self): path_dict = get_install_paths() return path_dict
def __init__(self, vertical, parent=None): QWebView.__init__(self, parent) s = self.settings() s.setAttribute(s.JavascriptEnabled, False) self.vertical = vertical self.page().setLinkDelegationPolicy(self.page().DelegateAllLinks) self.linkClicked.connect(self.link_activated) self._link_clicked = False self.setAttribute(Qt.WA_OpaquePaintEvent, False) palette = self.palette() self.setAcceptDrops(False) palette.setBrush(QPalette.Base, Qt.transparent) self.page().setPalette(palette) self.css = P("templates/book_details.css", data=True).decode("utf-8") for x, icon in [ ("remove_format", "trash.png"), ("save_format", "save.png"), ("restore_format", "edit-undo.png"), ("copy_link", "edit-copy.png"), ("manage_author", "user_profile.png"), ("compare_format", "diff.png"), ]: ac = QAction(QIcon(I(icon)), "", self) ac.current_fmt = None ac.current_url = None ac.triggered.connect(getattr(self, "%s_triggerred" % x)) setattr(self, "%s_action" % x, ac)
def __init__(self, *args): QWebView.__init__(self, *args) self.gui = None self.tags = '' self._page = NPWebPage() self.setPage(self._page) self.cookie_jar = QNetworkCookieJar() self.page().networkAccessManager().setCookieJar(self.cookie_jar) http_proxy = get_proxies().get('http', None) if http_proxy: proxy_parts = urlparse(http_proxy) proxy = QNetworkProxy() proxy.setType(QNetworkProxy.HttpProxy) if proxy_parts.username: proxy.setUser(proxy_parts.username) if proxy_parts.password: proxy.setPassword(proxy_parts.password) if proxy_parts.hostname: proxy.setHostName(proxy_parts.hostname) if proxy_parts.port: proxy.setPort(proxy_parts.port) self.page().networkAccessManager().setProxy(proxy) self.page().setForwardUnsupportedContent(True) self.page().unsupportedContent.connect(self.start_download) self.page().downloadRequested.connect(self.start_download) self.page().networkAccessManager().sslErrors.connect(self.ignore_ssl_errors)
def __init__(self, parent, icon, prefs, html=None, page=None, title=''): self.prefs = prefs #QDialog.__init__(self, parent=parent) super(HelpView, self).__init__(parent, 'help_dialog') self.setWindowTitle(title) self.setWindowIcon(icon) self.l = QVBoxLayout(self) self.setLayout(self.l) self.wv = QWebView() if html is not None: self.wv.setHtml(html) elif page is not None: self.wv.load(QUrl(page)) self.wv.setMinimumHeight(100) self.wv.setMaximumHeight(16777215) self.wv.setMinimumWidth(400) self.wv.setMaximumWidth(16777215) self.wv.setGeometry(0, 0, 400, 100) self.wv.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.l.addWidget(self.wv) # Sizing sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.resize_dialog()
def __init__(self, url): self.app = QApplication(sys.argv) QWebView.__init__(self) self.loadFinished.connect(self._loadFinished) self.load(QUrl(url)) self.app.exec_()
def mousePressEvent(self, mouseEvent): pos = mouseEvent.pos() if self.pointInScroller(pos, QtCore.Qt.Vertical) or self.pointInScroller(pos, QtCore.Qt.Horizontal): self.clickedInScrollBar = True else: if self.ignored.count(mouseEvent): self.ignored.remove(mouseEvent) return QWebView.mousePressEvent(self, mouseEvent) if not self.pressed and not self.scrolling and mouseEvent.modifiers() == QtCore.Qt.NoModifier: if mouseEvent.buttons() == QtCore.Qt.LeftButton: self.pressed = True self.scrolling = False self.handIsClosed = False QApplication.setOverrideCursor(QtCore.Qt.OpenHandCursor) self.position = mouseEvent.pos() frame = self.page().mainFrame() xTuple = frame.evaluateJavaScript("window.scrollX").toInt() yTuple = frame.evaluateJavaScript("window.scrollY").toInt() self.offset = QPoint(xTuple[0], yTuple[0]) return return QWebView.mousePressEvent(self, mouseEvent)
def show(): path = os.path.abspath(__file__) while path: path = path[:path.rfind("/")] # specialize for Mac app bundle p = path if path.endswith(".app/Contents"): p += "/Resources" p += "/docs/projects/steamshovel/index.html" if os.path.exists(p): path = p break if not path: return False try: import IPython from PyQt4.QtWebKit import QWebView from PyQt4.QtCore import QUrl view = QWebView() view.setUrl(QUrl(path)) view.show() view.raise_() view.activateWindow() __main__.view = view # keep view alive return True except ImportError: # fall back to webbrowser module import webbrowser as wb w = wb.get() # work-around for bug in Python2.7 on MacOS, only Safari works if isinstance(w, wb.MacOSXOSAScript): w = wb.get("Safari") return w.open(path)
def __init__(self, base, url): QDialog.__init__(self) self.base = base self.setWindowTitle(i18n.get('authorize_turpial')) self.resize(800, 550) self.setModal(True) self.webview = QWebView() qurl = QUrl(url) self.webview.setUrl(qurl) message = QLabel(i18n.get('copy_the_pin')) #message.setAlignment(Qt.AlignRight) self.pin = QLineEdit() self.pin.setPlaceholderText(i18n.get('type_the_pin')) authorize_btn = QPushButton(i18n.get('save')) authorize_btn.clicked.connect(self.accept) widgets_box = QHBoxLayout() widgets_box.setSpacing(3) widgets_box.setContentsMargins(3, 3, 3, 3) widgets_box.addWidget(message, 1) widgets_box.addWidget(self.pin) widgets_box.addWidget(authorize_btn) layout = QVBoxLayout() layout.addWidget(self.webview) layout.addLayout(widgets_box) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.exec_()
def __init__(self, parent): super(HtmlViewerWidget, self).__init__(parent) self.setLayout(QGridLayout()) self.layout().setContentsMargins(0, 0, 0, 0) self.view = QWebView() self.view.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) self.layout().addWidget(self.view)
def __init__(self, html, resolution): QWebView.__init__(self) self.resolution = resolution self.finished = False self.out = "web2png.%i.png" % int(random.randint(0, 1000)) #self.web_view = QWebView() #self.css_file = QString('/home/ddimitrov/wikiwsd/data/wikipedia_css.css') #path = os.getcwd() #self.settings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True) #self.settings().setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True) #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile("wikipedia_css.css")) #self.web_view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile(QString('file:///home/ddimitrov/wikiwsd/wikipedia_css.css'))) #print self.web_view.settings().userStyleSheetUrl() #self.web_view.settings().setAttribute(QWebSettings.AutoLoadImages, False) #self.web_view.settings().setAttribute(QWebSettings.JavascriptEnabled, False) #self.setCentralWidget(self.web_view) #self.resize(resolution[0], resolution[1]) self.loadFinished.connect(self._load_finished) #self.loadProgress.connect(self._loadProgress) self.setHtml(html)
def __init__(self, widget, chart='Line', data=[], xkey='', ykeys=[], labels=[], raw='', **attrs): ''' @param {QWidget} widget = instance of QWidget @param {string} name = namefile chart @param {string} chart = morris type chart: Line, Bar, Donnut @param {list} data = list of data to show @param {string} xkey = a string containing the name of the attribute that contains X labels @param {string} ykeys = a list of strings containing names of attributes that contain Y values @param {list} labels = a list of strings containing labels for the data series to be plotted @param {string} raw = string params to append in morris options ''' self.widget = widget self.name = 'chart.html' # chart name file self.chart = chart.capitalize() # Line | Bar | Donut self.data = data # [] self.xkey = xkey self.ykeys = ykeys # ['a', 'b'] self.labels = labels # ['label a', 'label b'] self.attrs = attrs self.raw = raw self.program_folder = getProgramFolderPath() self.tmpl = convertPath(self.program_folder + 'morris/template.html') self.path_file = convertPath(self.program_folder + self.name) self.webview = QWebView() self.webview.setPage(WebPage()) self.webview.page().settings().setAttribute( QWebSettings.JavascriptEnabled, True) self.widget.setLayout(QtGui.QVBoxLayout()) self.widget.layout().setContentsMargins(0, 0, 0, 0) self.widget.layout().addWidget(self.webview)
def contextMenuEvent(self, event): """Replace the default RMB menu.""" menu = QtGui.QMenu(self) inspect = QtGui.QAction('&Inspect', self) inspect.triggered.connect(self.show_inspector) menu.addAction(inspect) QWebView.contextMenuEvent(self, event)
def __init__(self, opts, log, cover_data=None, toc=None): from calibre.gui2 import is_ok_to_use_qt if not is_ok_to_use_qt(): raise Exception('Not OK to use Qt') QObject.__init__(self) self.logger = self.log = log self.opts = opts self.cover_data = cover_data self.paged_js = None self.toc = toc self.loop = QEventLoop() self.view = QWebView() self.page = Page(opts, self.log) self.view.setPage(self.page) self.view.setRenderHints(QPainter.Antialiasing | QPainter.TextAntialiasing | QPainter.SmoothPixmapTransform) self.view.loadFinished.connect(self.render_html, type=Qt.QueuedConnection) for x in (Qt.Horizontal, Qt.Vertical): self.view.page().mainFrame().setScrollBarPolicy( x, Qt.ScrollBarAlwaysOff) self.report_progress = lambda x, y: x self.current_section = ''
class BookView(QSplitter): def __init__(self, parent=None): super(BookView, self).__init__(parent=parent) self.create_layout() self.create_connections() def create_layout(self): self.web_view = QWebView() self.chapter_list = QListWidget() self.next_button = QPushButton("Next chapter") self.previous_button = QPushButton("Previous chapter") hbox = QHBoxLayout() hbox.addStretch() hbox.addWidget(self.previous_button) hbox.addWidget(self.next_button) vbox = QVBoxLayout() vbox.addWidget(QLabel("Chapters")) vbox.addWidget(self.chapter_list) vbox.addLayout(hbox) widget = QWidget() widget.setLayout(vbox) self.addWidget(self.web_view) self.addWidget(widget) def create_connections(self): chlist = self.chapter_list self.connect(self.next_button, SIGNAL("clicked()"), lambda: chlist.setCurrentRow(0 if chlist.currentRow() == chlist.count() - 1 else chlist.currentRow() + 1)) self.connect(self.previous_button, SIGNAL("clicked()"), lambda: chlist.setCurrentRow(chlist.count() - 1 if chlist.currentRow() == 0 else chlist.currentRow() - 1)) self.connect(self.chapter_list, SIGNAL("currentRowChanged(int)"), self.set_chapter) page = self.web_view.page() page.setLinkDelegationPolicy(QWebPage.DelegateAllLinks) def set_chapter(self, num=None): if num is None: num = self.chapter_list.currentRow() if num < 0: num = len(self.book.chapters) - 1 elif num >= len(self.book.chapters): num = 0 self.web_view.setHtml(self.book.get_chapter(num).decode(encoding="utf-8")) def load_book(self, book_id): self.book = Book(book_id) self.chapter_list.clear() for chapter in self.book.chapters: self.chapter_list.addItem(chapter[0]) self.chapter_list.setCurrentRow(0)
class UploadFiles(QWidget): def __init__(self): QWidget.__init__(self) vbox = QVBoxLayout(self) self.web = QWebView() self.web.load(QUrl('http://wingedbox.com/upload_files')) vbox.addWidget(self.web)
def showHelpDialog(self): helpDialog = QDialog(self) verticalLayout = QVBoxLayout(helpDialog) helpWebView = QWebView(helpDialog) helpWebView.setUrl(QUrl(self.helpFile)) verticalLayout.addWidget(helpWebView) helpDialog.exec_() pass
def __init__(self, parent=None): """ This method initializes the class. :param parent: Object parent. ( QObject ) """ QWebView.__init__(self, parent)
def __init__(self, window): QWebView.__init__(self) self.window = window with open(Resources.get_path("leftpane.js"), "r") as f: self.js = f.read() # We don't want plugins for this simple pane self.settings().setAttribute(QWebSettings.PluginsEnabled, False) self.reset()
def keyPressEvent( self, event ): " Handles the key press events " if event.key() == Qt.Key_Escape: self.escapePressed.emit() event.accept() else: QWebView.keyPressEvent( self, event ) return
class Popup(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) #self.centralwidget = QtGui.QWidget #self.verticalLayout_4 = QtGui.QVBoxLayout(self.centralwidget) self.QWebView = QWebView(self) self.QWebView.resize(350,400) self.resize(350, 400)
class BrowserWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) vlayout = QVBoxLayout() vlayout.addLayout(self.get_url_bar()) javascript_bar = self.get_javascript_bar() vlayout.addLayout(javascript_bar) self.browser = QWebView(self) self.browser_frame = self.browser.page().currentFrame() self.connect(self.browser_frame, SIGNAL('javaScriptWindowObjectCleared()'), self.add_javascript_bridge); vlayout.addWidget(self.browser) vlayout.addWidget(QuitButton()) self.setLayout(vlayout) def get_url_bar(self): url_bar = QHBoxLayout() self.url_box = QLineEdit() self.connect(self.url_box, SIGNAL('returnPressed()'), self.show_browser) go = QPushButton(self) go.setText("Go") self.connect(go, SIGNAL('clicked()'), self.show_browser) url_bar.addWidget(self.url_box) url_bar.addWidget(go) return url_bar def get_javascript_bar(self): javascript_bar = QHBoxLayout() self.javascript_box = QLineEdit() self.connect(self.javascript_box, SIGNAL('returnPressed()'), self.send_javascript) ex = QPushButton(self) ex.setText("Execute on page") self.connect(ex, SIGNAL('clicked()'), self.send_javascript) javascript_bar.addWidget(self.javascript_box) javascript_bar.addWidget(ex) return javascript_bar def add_javascript_bridge(self): self.browser_frame.addToJavaScriptWindowObject("webkitBridge", WebkitBridge()) def send_javascript(self): self.browser.page().currentFrame().evaluateJavaScript(self.javascript_box.text()) def show_browser(self): url = QUrl(self.url_box.text()) self.browser.load(url)