J'utilise Qt/WebKit afin de faire un petit browser assez specifique, et j'aimerais avoir un controle complet sur les requetes qui sont effectuees a chaque fois par le QWebView/QWebpage et aussi pouvoir les logguer.
Vu qu'il n'y a pas moyen d'acceder directement a la requete via une QWebPage, j'ai essaye en surchargeant un QNetworkAccessManager et en l'affectant a ma QWebPage, mais rien ne se passe... Donc si qqn aurait une idee...
Voici le code qui aurait ete cense faire ce que je voulais, qui est basiquement d'intercepter les requetes get/post faites via QNetworkAccessManager par WebKit, mais apparement c'est foireux et/ou ca marche pas comme ca.
[nosmile]
class NetworkAccessManager(QNetworkAccessManager):
__unique = None
def __init__(self, parent = None):
if NetworkAccessManager.__unique:
raise NetworkAccessManager.__unique
NetworkAccessManager.__unique = self
QNetworkAccessManager.__init__(self, parent)
def get(self, request):
print "NetworkManager::get"
return QNetworkAccessManager.get(self, request)
def post(self, request, data):
print "NetworkManager::post"
return QNetworkAccessManager.post(self, request, data)
class MainWindow(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.manager = NetworkAccessManager()
self.webpage = QWebPage()
self.webpage.setNetworkAccessManager(self.manager)
self.web = QWebView()
self.web.setPage(self.webpage)
self.web.load(QUrl("http://asdf.com"))
self.setCentralWidget(self.web)