Seite 1 von 1

[gelöst] QTextEdit Text auslesen geht nimmer

Verfasst: 14. April 2010 16:52
von MQ
Hallo,

in einem Programm, das ich unter Qt4.4.3 erstellt habe, lese ich Text aus einem QTextEdit folgendermaßen:

Code: Alles auswählen

   QTextCursor CRSR = textEdit->textCursor();
   CRSR.movePosition( QTextCursor::StartOfLine, QTextCursor::MoveAnchor, 1);
   CRSR.movePosition( QTextCursor::EndOfLine, QTextCursor::KeepAnchor, 1);
   content = CRSR.selectedText();
Dabei ist textEdit das entsprechende QTextEdit.

Ich mache eine Kopie vom Cursor und markiere die aktuelle Textzeile, die ich auslesen will. Das funktionierte bisher.
Nun portiere ich von MSVC auf MinGW und von Qt4.4.3 auf 4.6.2 und muss feststellen, dass content leer bleibt. Es wird nichts ausgelesen. Schaue ich genauer hin, stelle ich fest, dass der Cursor auch nicht bewegt wird. Die Methode movePosition bleibt ohne Wirkung.

Mache ich nicht den Umweg über die Kopie des Cursors und verwende stets textEdit->TextCursor() dann ändert sich nix. Auch hier bewegt sich der Cusror nicht und damit bleibt die Auswahl und content leer.

Liegt hier ein Bug in 4.6.2 vor oder warum geht es jetzt nicht mehr?

MQ

Verfasst: 15. April 2010 10:58
von MQ
Hallo,

ich habe mit dem Debugger etwas näher hingeschaut.

Es ist hier so, dass textCursor().movePosition ein true zurück gibt, was anzeigen soll, dass kein Fehler vorliegt. Die Position wurde aber nicht verändert!

Code: Alles auswählen

res=textEdit->textCursor().movePosition( QTextCursor::StartOfLine, QtextCursor::MoveAnchor, 1);
textEdit->textCursor().insertText("dudu - ");
Das Beispiel zeigt bei mir, dass von movePosition True zurückgegeben wird, der Textschnippsel aber immer an der aktuellen Position eingefüht wird und nicht wie beabsichtigt am Zeilenanfang.

Da kann man doch nichts falsch machen, oder? Oder gibt es einen Schalter bei QTextEdit, wo man movePosition ein- und ausschalten kann?

Bin ratlos!

MQ

Verfasst: 15. April 2010 13:53
von MQ
hallo,

für's Archiv!

Keine Ahnung warum. Nach zwei Tagen mühseliger rumprobiererer geht es wieder.

Ich habe mehrfach zwischen Qt4.4.3 und Qt4.6.2 und MSVC und MinGW hin und her gewechselt.

Nun tut es mit dem ursprünglichen Sourcecode.



MQ