Seite 1 von 1

HTML -Tabelle

Verfasst: 19. August 2010 01:05
von Nvidia
Hallo,
ich moechte gerne in einer HTML datei eine tabelle anzeigen, von der ich nicht genau weiss wie viele zeilen und spalten sie hat, deshalb hab ich sie in schleifen gepackt, die jeweils html befehle einfuegen.
Nur leider funktioniert das nicht wieso? Hier ein MM-Beispiel.
Die erste Tabelle wird nicht angezeigt, die andere schon?

Code: Alles auswählen

#include <QPushButton>
#include <QWidget>
#include <QHBoxLayout>
#include <QPainter>
#include <QPaintEvent>
#include <QImage>
#include <QApplication>
#include <QTextBrowser>
#include <QDebug>
#include "mainwindow.h"


int main(int argc, char** argv) {
    QApplication app(argc, argv);
    QTextBrowser q;
    q.show();
    QTextDocument *t = new QTextDocument;
    q.setDocument(t);
    QTextCursor c(t);
    c.insertHtml("<table border=1>");
    c.insertHtml("<tr>");
    c.insertHtml("<th width=200>Zeile2</th>");
    c.insertHtml("<th>Zeile2</th>");
    c.insertHtml("</tr></table>");
    c.insertHtml("<table border=1><tr><th width=200>Zeile2</th><th>Zeile2</th></tr></table>");
    return app.exec();
}

Verfasst: 19. August 2010 08:30
von padreigh
ich konnte etwas ähnliches bei Listen (erste tat, zweite wurde aus subliste eingehängt) sehen ... abgestellt hab ich es indem ich einen neuen Textblock begonnen hab

pseudo:

Code: Alles auswählen

qtextcursor tc = textedit,textcursor();
tc.insertBlock()
textedit.setTextCursor(tc);
// insret new table
(zappelbaby aufm arm ...)

Verfasst: 19. August 2010 08:34
von franzf
nserts the text html at the current position(). The text is interpreted as HTML.
Heißt: Das Eingefügte wird bereits interpretiert. Da du nie valide HTML-Fragmente einfügst, kommt auch nix an.
Lösung: Anstatt in der Schleife immer insertHtml aufzurufen, baust du dir einen QString zusammen, den du am Ende, wenn die Tabelle komplett ist, mit insertHtml einfügst.

Verfasst: 19. August 2010 21:52
von Nvidia
der qtgott hat gesprochen :o