Html-Code von QWebPage oder QWebView

Alles rund um die Programmierung mit Qt
Antworten
ghostboss
Beiträge: 28
Registriert: 25. September 2010 17:10

Html-Code von QWebPage oder QWebView

Beitrag von ghostboss »

Hallo,

ich lerne gerade Qt (hab mir ein Buch gekauft). Ich versuche gerade ein Programm zu schreiben und brauche mal kurz hilfe.

Wie kriege ich von QWebView den Html Code? Hab auch in QWebPage gesucht aber finde da auch nichts.
Und wie kann ich da Html Code einfügen/setzen?

(will soneart WYSIWYG-Editor bauen)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ghostboss
Beiträge: 28
Registriert: 25. September 2010 17:10

Beitrag von ghostboss »

Danke, aber wie kann ich den HTML Code von QWebView bekommen?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Meinen Link gelesen??
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ghostboss
Beiträge: 28
Registriert: 25. September 2010 17:10

Beitrag von ghostboss »

Ja habe ich und so wie ich das verstanden habe (mit meinem Englisch Kenntnis) setzt diese Methode den Inhalt.
Ich will aber den Inhalt haben.

Mein Codeausschnitt:

Code: Alles auswählen

    editorWeb = new QWebView();
    editorText = new QTextEdit();
    QString html = "<b>hallo</b>";


    setCentralWidget(editorWeb);

    QUrl url = QUrl("http://www.pisound.de");
    editorWeb->load(url);

    editorWeb->setHtml(html, url);
    editorText->setText(html);
Nach diesem Code hab ich dann "hallo" (Fettgeschrieben) im QWebView()
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Da du eine andere Doku wie wir zu haben scheinst, poste ich mal den relevanten Abschnitt:
void QWebView::setHtml ( const QString & html, const QUrl & baseUrl = QUrl() )
Sets the content of the web view to the specified html.
External objects such as stylesheets or images referenced in the HTML document are located relative to baseUrl.
The html is loaded immediately; external objects are loaded asynchronously.
When using this method, WebKit assumes that external resources such as JavaScript programs or style sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. Alternatively, the encoding can also be specified by the web server.
See also load(), setContent(), and QWebFrame::toHtml().
ghostboss
Beiträge: 28
Registriert: 25. September 2010 17:10

Beitrag von ghostboss »

Doch das gleiche steht da oben in Link auch.
Sets the content of the web view to the specified html.
Übersetzung: Setzt den Inhalt von "WebView" zu dem angegebenen Html.
External objects such as stylesheets or images referenced in the HTML document are located relative to baseUrl.
Übersetzung: Externe Objekte, solche wie Stylesheets oder Bilder in dem Html Document sind lokal relativ zu "baseUrl.

Code: Alles auswählen

void QWebView::setHtml ( const QString & html, const QUrl & baseUrl = QUrl() )
// html ist der Html-Code 
// baseUrl ist der Pfad zu Externen Dateien
Wie es aussieht ist diese Methode zum setzen des Html-Codes im QWebWiev, oder hab ich das falsch übersetzt :D ?

Ich möchte Aber den Inhalt von QWebView haben!!! Ich möchte den Inhalt als String haben und ihn verändern.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

QWebFrame::toHtml() ?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Es ging eigentlich nur um die allerletzte Zeile! Bei "toHtml()" muss es doch bimmeln :P
Dann schaust du wie du von QWebView nach QWebFrame kommst und du hast ein HTML.
ghostboss
Beiträge: 28
Registriert: 25. September 2010 17:10

Beitrag von ghostboss »

Ok sorry, aber wenn mir die Funktion "void QWebView::setHtml" gepostet wird dann denke ich auch das die Funktion gemeint ist :) außerdem kann ich Html und man kann die Webseiten ohne Frame erstellen, deswegen dachte ich das QWebFrame was für Webseiten mit Frames ist.

So, ich hab das jetzt mit QWebFrame gemacht aber trozdem geht es nicht. QWebView ladet aber die Seite.

Code: Alles auswählen

    QString html = "<b>hallo bla bla bla bla</b>";
    QUrl url = QUrl("http://www.pisound.de");
    editorWeb->load(url);

    QWebFrame* frame = editorWeb->page()->mainFrame();
    html = frame->toHtml();
    editorText->setText(html);
Wenn ich die Code Zeile:

Code: Alles auswählen

html = frame->toHtml();
auskommentiere, dann steht im editorText (QTextEdit) "<b>hallo bla bla bla bla</b>". Also klappt was mit frame nicht.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Weil du dem armen WebView auch gar keine Zeit lässt zu laden! Warte auf das loadFinished()-Signal des QWebView, im entsprechenden SLOT kannst du dir dann problemlos mit view->page()->mainFram().toHtml(); dein HTML abholen.
ghostboss
Beiträge: 28
Registriert: 25. September 2010 17:10

Beitrag von ghostboss »

Jo es geht Danke :D
Antworten