Wygląda na to, że byłoby to powszechne, ale nie mogę znaleźć odpowiedzi.Jak uzyskać aktualnie widoczny tekst z widżetu QTextEdit lub QPlainTextEdit?
Mam widget QTextEdit lub QPlainTextEdit z wiązką tekstu. Wystarczy, że przewijanie jest konieczne.
Chcę, aby inny widget podał informacje o aktualnie widocznym tekście. Aby to zrobić, muszę wiedzieć
- gdy widoczny tekst zmienia
- co za tekst?
Widzę, że QPlainTextEdit ma metodę firstVisibleBlock, ale jest chroniona. Mówi mi to, że to nie jest coś, co powinienem używać w mojej aplikacji. W przeciwnym razie nie musiałbym tworzyć podklasy z okna edycji.
Widzę również, że istnieje sygnał updateRequest, ale nie jest jasne, co robię z QRectem.
Jak to zrobić lub gdzie mogę znaleźć podpowiedź?
Brzmi jak trzeba podklasy QPlainTextEdit. nie ma innego sposobu na zrobienie czegoś takiego. możesz uzyskać widoczny tekst za pomocą funkcji firstVisibleBlock i view(). (sizeHint). musisz obliczyć pierwszy i ostatni widoczny blok i zwrócić tekst między nimi. –
Byłbym bardzo wdzięczny za odpowiedź na to również. Pracuję nad tym teraz. Wbudowana metoda toPlainText() nie wydaje się, aby pobrać aktualnie widoczny tekst, ale raczej jakiś inny parametr tekstowy, który nie jest aktualizowany, gdy użytkownik wpisze lub wprowadzi zmiany do widocznego tekstu. – ely
@EMS: 'toPlainText()' działa w kodzie, który napisałem, zobacz odpowiedź poniżej. – Exa