Bewegt den Cursor innerhalb von QTextEdit

8

Ich habe ein Formular mit einem QTextEdit , das heißt translationInput . Ich versuche, die Bearbeitungsfunktion für den Benutzer bereitzustellen.

Dieser QTextEdit enthält HTML-formatierten Text. Ich habe eine Reihe von Schaltflächen wie " fett ", " Kursiv " usw., die die entsprechenden Tags in das Dokument einfügen sollen. Wenn die Schaltfläche gedrückt wird, wenn kein Text ausgewählt ist, möchte ich nur ein Paar Tags einfügen, z. B. <b></b> . Wenn ein Text ausgewählt ist, sollen die Tags links und rechts davon erscheinen.

Das funktioniert gut. Ich möchte aber auch, dass der Cursor danach vor dem schließenden Tag platziert wird, damit der Benutzer in dem neu hinzugefügten Tag weiter tippen kann, ohne den Cursor manuell neu positionieren zu müssen. Standardmäßig erscheint der Cursor rechts nach dem neu hinzugefügten Text (also in meinem Fall direkt nach dem schließenden Tag).

Hier ist der Code, den ich für die Schaltfläche Italic habe:

%Vor%

Die letzte Zeile bewirkt jedoch nichts, der Cursor bewegt sich nicht, obwohl movePosition() true zurückgibt, was bedeutet, dass alle Operationen erfolgreich abgeschlossen wurden.

Ich habe das auch mit QTextCursor::PreviousCharacter anstelle von QTextCursor::Left versucht und versucht, es vor und nach der Rückkehr des Fokus zur Bearbeitung zu bewegen, das ändert nichts.

Die Frage ist also: Wie bewege ich den Cursor in mein QTextEdit ?

    
SingerOfTheFall 27.07.2012, 07:31
quelle

1 Antwort

9

Das Problem wurde behoben, indem Sie tiefer in die Dokumente eindringen.

Die Funktion textCursor() gibt eine Kopie des Cursors aus QTextEdit zurück. Um also den aktuellen Wert zu ändern, muss die Funktion setTextCursor() verwendet werden:

%Vor%     
SingerOfTheFall 27.07.2012, 07:47
quelle

Tags und Links