PyQt Formularze Webkit i html: Pobieranie danych wyjściowych i zamykanie okna

Próbuję uzyskać okno webkit PyQt pythona bez obramowania, aby wyświetlić pojedynczy formularz HTML. Po kliknięciu na wysyłkę wartości formularza należy zapisać w słowniku i zamknąć okno.

Do tej pory (z pomocą aWIĘC) Mam okno bez obramowania i mogę pobrać dane wejściowe. Jednak brakuje dwóch rzeczy:

Zamykanie okna po naciśnięciu Wyślij.Pobieranie danych wejściowych ze słownikaelements (zauważ, że klawiszeelements odpowiadają nazwom formularzy html).

(potencjalnie odwrotnie byłoby lepiej, ale 1 wydaje się trudniejszy)

Mój dotychczasowy kod to:

import sys

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

elements = {"like":"", "text": ""}

class MyWebPage(QWebPage):
    def acceptNavigationRequest(self, frame, req, nav_type):
        if nav_type == QWebPage.NavigationTypeFormSubmitted:
            text = "<br/>\n".join(["%s: %s" % pair for pair in req.url().queryItems()])
            print(text)
            return True
        else:
            return super(MyWebPage, self).acceptNavigationRequest(frame, req, nav_type)


class Window(QWidget):
    def __init__(self, html):
        super(Window, self).__init__()
        self.setWindowFlags(Qt.FramelessWindowHint)
        view = QWebView(self)
        layout = QVBoxLayout(self)
        layout.addWidget(view)
        view.setPage(MyWebPage())
        view.setHtml(html)


# setup the html form
html = """
<form action="" method="get">
Like it?
<input type="radio" name="like" value="yes"/> Yes
<input type="radio" name="like" value="no" /> No
<br/><input type="text" name="text" value="Hello" />
<input type="submit" name="submit" value="Send"/>
</form>
"""

def main():
    app = QApplication(sys.argv)

    window = Window(html)
    window.show()
    app.exec_()

if __name__ == "__main__":
    main()

Doskonała odpowiedź nie tylko pokaże, jak to zrobić(a) zapisz dane wejściowe i(b) zamknij okno, ale(c) usuń również pozostałą małą szarą ramkę wokół strony html.

Aktualizacja: Używam Pythona 2.

questionAnswers(1)

yourAnswerToTheQuestion