Jestem programistą studiującym obecnie pracującym nad aplikacją do pracy przy użyciu Qt4. Buduję edytor równań i mam problemy z podświetleniem ciągu znaków w moim polu QTextEdit. Mam funkcję, która analizuje łańcuch QTextEdit i zwraca początkową i końcową liczbę całkowitą miejsca, w którym znajduje się błąd. Moją pierwotną strategią było użycie znaczników HTML w tych dwóch punktach, aby podkreślić błąd. Niestety pojawia się problem z tagowaniem html i składnią równania.Jak podświetlić ciąg tekstu wewnątrz QTextEdit
Myślę, że potrzebuję strategii opartej na bibliotece Qt, aby ustawić kolor tła pomiędzy tymi dwoma indeksami. Zacząłem szukać QSyntaxHighlighter; jednak myślę, że jest to bardziej do podkreślania przy użyciu predefiniowanego zestawu praw, a nie do chwytania czegokolwiek pomiędzy & b a ustawianiem koloru tła. Jeśli mogę użyć znacznika składni, proszę podać mi przykład i referencje, ponieważ przeczytałem już dokumentację i niczego nie znalazłem.
Dzięki za pomoc z góry!
P.S. Aby podkreślić problemy ze zgodnością html; html staje się problematyczny ze względu na wiele użytych znaków < i>.
To, co ostatecznie skończyło się zwracając się do .. Problem z tą odpowiedzią jest to, że wydaje się, że nie można ustawić tekst z powrotem do domyślnego koloru potem . To co zrobiłem to drapanie zmiany koloru tła i ustawienie mojego konkretnego segmentu podatnego na błędy równania, aby był po prostu zaznaczonym tekstem do momentu kliknięcia myszą w inne miejsce. Nie zaznaczam oczywiście problemów na czerwono, jednak to rozwiązanie zrobiło to, czego potrzebowałem; podświetl tekst, którego potrzebowałem do bardziej intuicyjnego sposobu sprawdzania równań. –
W ten sam sposób można ustawić domyślny kolor tła. Musisz tylko zapisać pozycje tekstu, które wybrałeś wcześniej. – hank
Niestety nie jest to możliwe ze względu na użycie wyzwalacza emitowanego z pola edycji tekstu. Gdy użytkownik kliknie z powrotem w okienko, chciałbym, aby podświetlenie zniknęło. Resetowanie kursora za każdym razem, gdy emitowany jest ten sygnał, powoduje, że użytkownik traci możliwość klikania prawym przyciskiem myszy i wybierania tekstu. Jest ok, jeśli nie wiesz, jak to zrobić; Po prostu pomyślałem, że zapytam. –