[gelöst] Cursorposition aus QTextEdit

Alles rund um die Programmierung mit Qt
Antworten
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

[gelöst] Cursorposition aus QTextEdit

Beitrag 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
Zuletzt geändert von stippy am 29. Juli 2005 17:19, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Cursorposition aus QTextEdit

Beitrag 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.
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag von stippy »

Was hast Du eigentlich vor?
Ich muß nen Editor schreiben. Und jeder vernünftige Editor hat ne Anzeige der Zeile bzw. Spalte.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag 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?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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 :)
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag 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 :-)
Antworten