Seite 1 von 1

automatische Link-Erkennung mit QTextEdit/QTextBrowser

Verfasst: 10. Juni 2012 00:58
von hakaishi
Hallo Leute,

ein Freund von mir und ich schreiben ein Notiz Programm. Was uns jetzt noch fehlt, ist das automatisch erkannt wird, wenn man z.B. http://www.web.de o.ä. eingibt, das das ein Link ist, er automatisch blau gekennzeichnet, unterstrichen und anklickbar gemacht wird.
Für die Textformatierungen könnte man ja theoretisch den QSyntaxHighlighter nehmen, aber wie macht man das der Link dann anklickbar wird? - Oder gibt es gar eine viel einfachere Lösung?

Wir sind für jeden Ratschlag/Hinweis dankbar! :)


Viele Grüße, Hakaishi

Re: automatische Link-Erkennung mit QTextEdit/QTextBrowser

Verfasst: 10. Juni 2012 08:28
von franzf
QTextEdit versteht Rich Text. <a> (HTML-Link) wird automatisch (entsprechend den Farbeinstellungen) hervorgehoben und ist anklickbar.
Um Links zu finden, bastelst du dir eine RegExp, oder gehst selber durch das Dokument, und ersetzt alles, was du als Link erkennst, mit dem HTML-Äquivalent.

Re: automatische Link-Erkennung mit QTextEdit/QTextBrowser

Verfasst: 10. Juni 2012 09:47
von hakaishi
Hallo franzf,

danke für deine Antwort. Ich weiß, dass Rich Text automatisch entsprechend erkannt wird. Ich dachte eher an die Erkennung, wenn der Benutzer etwas in den Editor eintippt. Gibt es außer durch das Ersetzen mit QRegExp noch eine alternative (einfachere) Lösung, das automatisch als Link zu erkennen? - Ansonsten würde ich das natürlich verwenden und einfach nach "www.", "ftp.", "http://" und "https://" suchen lassen...

Re: automatische Link-Erkennung mit QTextEdit/QTextBrowser

Verfasst: 10. Juni 2012 16:37
von hakaishi
Also, ich habe es geschafft, dass alle Links und E-Mail-Adressen entsprechend markiert werden. Aber hat jemand eine Idee, wie ich die jetzt so umformatiere, das sie anklickbar sind? - Da ist es leider nicht so einfach, wie mit setBold(true) o.ä.

Re: automatische Link-Erkennung mit QTextEdit/QTextBrowser

Verfasst: 10. Juni 2012 16:52
von dazedly
franzf hat geschrieben:QTextEdit versteht Rich Text. <a> (HTML-Link) wird automatisch (entsprechend den Farbeinstellungen) hervorgehoben und ist anklickbar.
Um Links zu finden, bastelst du dir eine RegExp, oder gehst selber durch das Dokument, und ersetzt alles, was du als Link erkennst, mit dem HTML-Äquivalent.
Benutze das QTextEdit im Rich Text Modus und füge um das gefundene a-Tags ein.

Re: automatische Link-Erkennung mit QTextEdit/QTextBrowser

Verfasst: 10. Juni 2012 16:56
von hakaishi
dazedly hat geschrieben: Benutze das QTextEdit im Rich Text Modus und füge um das gefundene a-Tags ein.
genau da hängt es bei mir ja gerade...

Hier ist unser Code zu bekommen: https://github.com/hakaishi/nobleNote
Da habe ich auch schon den SyntaxHighlighter entsprechend angepasst.