Как встроить Firebug Lite в мой виджет QWebView? - PullRequest
2 голосов
/ 18 июня 2011

Я начал встраивать некоторые виджеты QWebView в свое настольное приложение (PyQt).
Я использую JQuery и CSS для улучшения внешнего вида и удобства использования.
Было бы удобно отлаживать мой HTML-код с помощью веб-инспектора.
Как я могу встроить Firebug Lite в мои виджеты QWebView?

Например, я попробовал следующий код, и он не работает:

html1 = """
<html debug="true">
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.js"></script>
    <script type="text/javascript" src="https://getfirebug.com/firebug-lite.js#startOpened=true"></script>
    <script type="text/javascript">
    $(document).ready(function() { 
        $("body").css("background", "#f00");
        console.log("in here");
    });
    </script>

</head>
<body><h1>Hello!</h1></body>
</html>
"""
html2 = """
<html debug="true">
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.js"></script>
    <script type="text/javascript">
    $(document).ready(function() { 
        $("body").css("background", "#f00");
        var firebugLite = document.createElement("script");
        firebugLite.src = "https://getfirebug.com/firebug-lite.js";
        firebugLite.id = "firebug_lite";
        firebugLite.textContent = "{ startOpened: true }";
        document.getElementsByTagName("head")[0].appendChild(firebugLite);
        console.log("in here");
    });
    </script>
</head>
<body><h1>Hello!</h1></body>
</html>
"""    

if __name__ == '__main__':
    app = QApplication(sys.argv)
    view = QWebView()
    frame = view.page().mainFrame()
    frame.setHtml(html2)
    view.show()
    app.exec_()

html1 и html2 имеют одинаковый эффект: тело становится красным, но Firebug не появляется.

PS Мой настоящий HTML-код нельзя отладить с помощью внешнего клиентского браузера,
, поскольку он использует ресурсы QT и объекты окна приложения.

1 Ответ

3 голосов
/ 18 июня 2011

Я добавил этот JavaScript в свои проекты на основе WebKit, может быть, это поможет и для QWebView?

var firebugLite = document.createElement("script");
firebugLite.src = "https://getfirebug.com/firebug-lite.js";
firebugLite.id = "firebug_lite";
firebugLite.textContent = "{ startOpened: true }";
document.getElementsByTagName("head")[0].appendChild(firebugLite);
...