string r""" Escapen """ wie in C++ ?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
huzzel
User
Beiträge: 2
Registriert: Montag 26. Juli 2010, 22:06

Hallo in Python kann man ja ganz einfach Strings mit """ escapen.

Code: Alles auswählen

results = current_frame.evaluateJavaScript(
            r"""
            var results = "";
            $("h3[class=r]").each(function(i) {
                results += $(this).text() + "\n";
            });
            results;
            """
)
Wie sieht das Escapen von so einem mehrzeiligen String denn in QT mit C++ aus ?
BlackJack

Sowas gibt's in C++ nicht. Da würde ich das so machen:

Code: Alles auswählen

results = current_frame.evaluateJavaScript(
    "var results = \"\";\n"
    "$(\"h3[class=r]\").each(function(i) {\n"
    "    results += $(this).text() + \"\\n\";\n"
    "});\n"
    "results;\n"
);
lunar

Speziell in Qt würde ich das vielleicht sogar in eine eigene Javascript-Datei schreiben, diese als Resource hinzufügen, und dann zur Laufzeit über "QFile" wieder laden.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Wenn man den JQuery-Ausdruck (das ist doch JQuery, oder?) effizienter schreibt und wenn man " durch ' ersetzt, ergibt sich das Problem mit den Strings in C++ auch gar nicht mehr, denn man kann's einfach so schreiben:

Code: Alles auswählen

$('h3[class=r]').map(function(){ return $(this).text(); }).get().join('\n');
Stefan
Antworten