Seite 1 von 1

[gelöst] Cursorposition aus QTextEdit

Verfasst: 29. Juli 2005 09:45
von stippy
Hallo zusammen,

ich bin neu hier. Studiere noch Informatik und bearbeite gerade meine Diplomarbeit in der ich Qt verwende. Ich denke da wird noch die ein oder andere Frage kommen.

So, dann mal zu meinem ersten Problemchen :-)

Wie bekomme ich auf einfache Art und Weise die aktuelle Zeile und Spalte an der sich der Cursor in einem QTextedit befindet.

über das Signal

cursorPositionChanged( int, int )

erhalte ich den Absatz und das Zeichen im Absatz. Das bringt mich aber nicht wirklich weiter. Gibts da noch was. Bzw. hat jemand nen einfachen Weg daraus Zeile und Spalte zu errechnen?

Gruss, Dirk

Re: Cursorposition aus QTextEdit

Verfasst: 29. Juli 2005 10:29
von macman
stippy hat geschrieben:Gibts da noch was. Bzw. hat jemand nen einfachen Weg daraus Zeile und Spalte zu errechnen?
Das wird schwierig da sich die Zeilen dem Editfeld anpassen. Ist also abhängig von Editgröße, Zeichensatz, Wordwrap oder nicht, usw.
Was hast Du eigentlich vor? Vielleicht läßt es sich ja anders lösen.

Verfasst: 29. Juli 2005 13:38
von stippy
Was hast Du eigentlich vor?
Ich muß nen Editor schreiben. Und jeder vernünftige Editor hat ne Anzeige der Zeile bzw. Spalte.

Verfasst: 29. Juli 2005 14:19
von FlorianBecker
dann reicht dir doch so wieso kein Standard QTextEdit, die KWrite Engine ist Bestandteil von den KDElibs, vielleicht guckst du dir da das eine oder andere ab, denn die Engine ist die Beste die ich kenne.

Verfasst: 29. Juli 2005 14:22
von macman
stippy hat geschrieben:Ich muß nen Editor schreiben. Und jeder vernünftige Editor hat ne Anzeige der Zeile bzw. Spalte.
Dann ist alles klar. Schalte das Wordwrap aus und nimm die Nummer des Absatzes. Wenn Du nämlich bei einem vernünftigen Editor das Wordwrap einschaltest, dann wird sich die Zeilennummer auch nicht ändern, wenn die in einer umbrochenen Zeile die vertikale Position änderst. Du bist dann nämlich noch in der selben Zeile, auch wenn es anders aussieht.

Verfasst: 29. Juli 2005 14:37
von stippy
dann reicht dir doch so wieso kein Standard QTextEdit, die KWrite Engine ist Bestandteil von den KDElibs, vielleicht guckst du dir da das eine oder andere ab, denn die Engine ist die Beste die ich kenne.
Das kann ich nicht machen, da das Programm auch unter Windows laufen sollte. Ich weiß das KDE auch mal unter Windows laufen wird oder schon läuft. Scheidet aber aus...

Schalte das Wordwrap aus und nimm die Nummer des Absatzes
Wordwrap ist aus! Passt trotzdem nicht!

Code: Alles auswählen

editor = new QTextEdit( verticalsplitter );
editor->setWordWrap( QTextEdit::NoWrap );
So müßte das doch aus sein, oder?

Verfasst: 29. Juli 2005 15:21
von macman
stippy hat geschrieben:So müßte das doch aus sein, oder?
Macht er es auch so? Du müßtest bei überlangen Zeilen einen horizontalen Slider bekommen. Passen denn die Nummern jeweils oder stimmt da schon was nicht?

Laß Dir Zeit, ich mach jetzt erst Wochenende :)

Verfasst: 29. Juli 2005 17:31
von stippy
Hab das Problem inzwischen gelöst!

setTextFormat( );

stand auf "Qt::RichText", hab ich auf "Qt::PlainText" geändert und die Methode zum einlesen einer Datei überarbeitet.

Jetzt passts! Danke! Bis zum nächsten Problem :-)