Seite 1 von 1

<a> Tag soll Python funktion ausführen

Verfasst: Dienstag 29. Dezember 2009, 13:15
von INFACT
Hi,

Ich schreibe gerade ein Programm, dass daten aus dem Internet holt und die in einem QTextBrowser festhält. Ich möchte das so einrichten, dass wenn ich in diesem QTextBrowser auf z.B. einen Link klicke, dass dann eine bestimmte Funktion ausgeführt wird.

Noch ein Beispiel:
Ich bekomme die Daten www.python-forum.de und 80. Und dann baue ich auf dem TextBrowser <a href="python_funktion_ausführen">www.python-forum.de Port: 80</a> Wenn ich jetzt auf den Link klicke soll ein HTTP request aufgebaut werden, und die Daten zurückgesendet werden.

Um das auszuführen müsste ich doch www.python-forum.de und 80 dieser Funktion als Parameter übergeben.

Ist das überhaupt möglich oder wie würdet ihr das machen? Geht das vielleicht, wenn ich dem link den onclick parameter hinzufügen würde?

MfG Robin

Verfasst: Dienstag 29. Dezember 2009, 15:29
von sma
Ich würde es so machen: Google nach "QTextBrowser link handler", finde passende Seite, finde dort heraus, dass es ein "linkClicked" Signal gibt, mache, was immer nötig ist, um da eine passende Implementierung ranzustricken (wie das geht, weiß ich nicht, da ich Qt nicht kennt) und das sollte es dann doch gewesen sein.

Stefan

Verfasst: Mittwoch 30. Dezember 2009, 11:24
von INFACT
Danke!
Genau das was ich gesucht habe.

So werde ich nächstes mal auch vorgehen :wink:

Verfasst: Mittwoch 30. Dezember 2009, 20:03
von INFACT
Ich habe das jetzt probiert, aber es funktioniert nicht. Ich habe den code:

Code: Alles auswählen

        self.connect(self.htmlbrowser,  QtCore.SIGNAL("linkClicked(const QString & link)"), self.print_hi)

    def print_hi(self, link):
        print link
htmlbrowser ist ein textBrowser

Verfasst: Mittwoch 30. Dezember 2009, 20:15
von Whitie
Hallo,
die verlinkte Dokumentation ist auch etwas älter (ich nehme an, du benutzt PyQt4?).
Versuchs mal mit anchorClicked.

Gruß
Whitie

Verfasst: Mittwoch 30. Dezember 2009, 21:42
von INFACT
Danke!