Portál AbcLinuxu, 4. května 2025 16:32

Dotaz: Přidání textu do QTextBrowser

13.10.2024 14:37 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Přidání textu do QTextBrowser
Přečteno: 347×
Odpovědět | Admin

Zdravím ...

po delší době jsem se vrátil k zobrazovači logů, co jsem psal v Pythonu + QT. Logy Python programů ( přes logger ) zobrazoval perfektně, reagoval na změnu logovacího souboru ( přepsání / přidání atd ). protože jsem chtěl zvýraznit řádky, obsahující NOTE, DEBUG a pod, řádky logu procházely konverzí na HTML, obarvily se hledaná slova a mezery se konvertovali na     a do QTextBrowser-u se vkládaly tyto řádky jako .insertHTML(). Když pak soubor narostl, znovu se načetly přidané řádky, zkonvertovaly se a vložili se do QTextBrowser-u pomocí .append().

Fungovalo to.

Ale pokud takto zobrazím apache log, tak první vložení je správné, .append() ale vloží text (ne HTML), takže řádky jsou protkané    (jako text) úseky, které dost zhoršují čitelnost logu.. Možná tady najdu někoho, kdo s tímto zápasil, protože ať čtu nebo hledám cokoli, nějak jsem se neposunul k řešení. Jo, když okno zavřu a znovu otevřu ten log, jsou zase řádky logu zobrazeny správně...

(QTextBrowser je potomkem QTextEdit a tedy sdílí jeho funkce)

 PySide2.QtWidgets.QTextEdit.append(text)¶

    Parameters:

        text – str

    Appends a new paragraph with text to the end of the text edit.

    Note

    The new paragraph appended will have the same character format and block format as the current paragraph, determined by the position of the cursor.

jak určit, že připojovaný úsek je HTML ?

proč to v python logu funguje, a apache logu ne?

Analyzuje nějak QT, co se vkládá, a problém je v tom, že log apache v podstatě nemá obarvovaná slova, takže vkládáný do qt browseru text kromě @nbsp; nemá span (kterým obarvuju ty určená slova )? Tápu...

Díky za naštelování :-)

Milan


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.10.2024 15:31 X
Rozbalit Rozbalit vše Re: Přidání textu do QTextBrowser
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten append() je tam z duvodu pomalosti insertHTML()? Zkusil bych vymenit QTextEdit za optimalizovany QPlainTextEdit a volat appendHTML().
13.10.2024 17:55 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Přidání textu do QTextBrowser
Když se změní logfile ( něco se zaloguje), program má pomocí QFileSystemWatcher nastaveno "donačtení" nového kusu logu (nechci znova a znova číst celý, řekněme 5M log) a vloží jej ( po konverzi na HTML kód) do textbrowseru k tomu, co v něm už je...
Řešení 1× (Milan Uhrák (tazatel))
13.10.2024 19:10 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Přidání textu do QTextBrowser
Odpovědět | | Sbalit | Link | Blokovat | Admin

Do určitých pokusů jsem se pustil už včera, ale když se nic nedařilo, zeptal jsem se tady ... ale zároveň se psaním dotazu mě napadaly další možnosti, jak dosáhnout toho netextování a to pravé řešení jsem i vypsal -a skutečně, obalil jsem každý řádek značkou span, a qt to vyhodnotil jako html, a už vkládá jako HTML..

No, snad to někomu pomůže, otázka vyřešena.

Milan

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.