2011-04-26 12 views
5

Estoy usando PyQt4 y un widget QWebView para ver una página web, pero parece que hay un problema con mi Javascript. Parece que otros navegadores funcionan bien, por lo que me gustaría saber si hay alguna excepción al imprimirlos en la consola.Imprimir excepciones de JavaScript en un QWebView a la consola

El código que estoy usando está por debajo. ¿Qué necesito agregar para hacer esto?

from PyQt4 import QtGui, QtWebKit 
browser = QtWebKit.QWebView() 
browser.load(QtCore.QUrl("http://myurl")) 
browser.show() 

Gracias, Andrew

Respuesta

16

Crear una subclase de QWebPage y definir el método javaScriptConsoleMessage():

import sys 
from PyQt4 import QtCore, QtGui, QtWebKit 

class WebPage(QtWebKit.QWebPage): 
    def javaScriptConsoleMessage(self, msg, line, source): 
     print '%s line %d: %s' % (source, line, msg) 

url = 'http://localhost/test.html' 
app = QtGui.QApplication([]) 
browser = QtWebKit.QWebView() 
page = WebPage() 
browser.setPage(page) 
browser.load(QtCore.QUrl(url)) 
browser.show() 
sys.exit(app.exec_()) 

Salida de ejemplo:

% python qweb.py 
http://localhost/test.html line 9: SyntaxError: Parse error 
6

O puede simplemente añadir DeveloperExtrasEnabled, haga clic derecho en QWebView an d seleccione Inspeccionar.

QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);

+0

que preguntarse por qué esta respuesta no tiene tantos upvotes..It tan fácil de utilizar las herramientas de desarrollo para depurar la aplicación front-end ... tienes mi voto amigo .... – repzero

+0

Sí , es bastante simple y directo. –

Cuestiones relacionadas