Zmienne w dokumencie html



  • Witam!

    Tytuł wątku jest zapewne nieadekwatny do problemu ale do rzeczy. Jednym z kolejnych elementów mojej aplikacji jest klocek odpowiedzialny za wydruk dokumentu (w całości sformatowany w HTML) uzupełnionego o dane pobrane z Widgetów. Problem w tym, że nie wiem jak się za to zabrać. Sformatowany tekst wymusza użycie QTextEdit, a to znowu znacząco utrudnia zadanie. Próbowałem już:

    1. Wrzucenie HTML bezpośrednio do QTextEdit na poziomie projektowania formularza, następnie wyszukiwanie słowa które trzyma zmienna X, następnie podmiana. Wniosek - przy 40 miejscach do zmiany można umrzeć.
    2. Próbowałem wczytywać wczytywać HTML z pliku do QTextEdit i linia po linii szukać słowa do zmiany. Konkluzja jak wyżej.
    3. Próbowałem też w akcie desperacji zmusić Qt aby słowo w QTextEdit stało się zmienną.
    4. W akcie megadesperacji zrobiłem skan dokumentu do pliku graficznego i chciałem po nim rysować ale ilość pracy przy ustawianiu miejsca rysowania oraz niska jakość podczas faktycznego drukowania zniechęciły.

    Gdyby ktoś nie rozumiał:
    W QText edit mam taki oto sformatowany HTML'em tekst: Jestem sobie [do_uzupełnienia] Romek, mam na [do_uzupełnienia1] domek...

    Istnieje jakieś mądre rozwiązanie takiego problemu?


  • Moderators

    Po prostu użyj QString::replace(). Ta metoda ma mnóstwo różnych wariantów, na pewno znajdziesz odpowiedni.

    Jeśli znaczniki do uzupełnienia faktycznie są numerowane, to możesz też wszystko zrobić w pętli i podmienić całość w jednej linijce kodu (tylko swoje "zmienne" rzuć do QList, na przykład).



  • Dzięki za pomysł! Nie wiem dlaczego nie wyświetliło mi się nic z 'replace' w helpie. Tak czy inaczej działa!

    btw example:
    @QString ciach = ui->QTextEditForm->toHtml();
    QString find = "text";

    ciach.replace(find,"pro");@

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.