hallo leute,
ich will über einen button den letzten buchstaben der in eine, QTextEdit *Editor; geschrieben wurde löschen.
ich habe in der docu nachgeschaut ob es eine methode gibt und habe das gefunden;
void QTextEdit::doKeyboardAction ( KeyboardAction action );
wenn ich das auf meinen Editor anwende sagt der compiler dass doKeyboardAction kein element von QTextEdit ist.
komischerweise finde ich es in der kompletten memberliste von QTextEdit auch nicht.
weiß jemand wie ich sonst einen buchstaben im texteditor löschen kann über einen button, also ohne die tastatur zu benutzen?
danke
doKeyboardAction geht auf QTextEdit nicht
-
soulsofpetro
- Beiträge: 16
- Registriert: 3. Dezember 2006 16:57
-
soulsofpetro
- Beiträge: 16
- Registriert: 3. Dezember 2006 16:57
Zuletzt geändert von soulsofpetro am 17. Dezember 2006 21:30, insgesamt 1-mal geändert.
-
soulsofpetro
- Beiträge: 16
- Registriert: 3. Dezember 2006 16:57
Ich habe mich mit QTextCursor schon beschäftigt, fand es aber umständlich.
sowas wie doKeyboardAction finde ich schon gut.
ich habe es nun so gemacht, wie gesgt es ist umständlich aber es funktioniert.
vielleicht hat ja jemand eine bessere idee:
QTextEditor *textEditor;
QTextDocument *texDoc;
texDoc = textEditor->document();
QTextCursor texCur(texDoc);
if(texCur.movePosition(QTextCursor::End, QTextCursor::MoveAnchor))
texCur.deletePreviousChar();
textEditor->setDocument(texDoc);
ich speichere also den inhalt meines editors in ein document, erzeuge einen cursor, setz ihn ans ende, lösche das vorherige char, und schreibe wieder den inhalt des Documents in meinem texteditor rein.
findet ihr das nicht umständlich?
sowas wie doKeyboardAction finde ich schon gut.
ich habe es nun so gemacht, wie gesgt es ist umständlich aber es funktioniert.
vielleicht hat ja jemand eine bessere idee:
QTextEditor *textEditor;
QTextDocument *texDoc;
texDoc = textEditor->document();
QTextCursor texCur(texDoc);
if(texCur.movePosition(QTextCursor::End, QTextCursor::MoveAnchor))
texCur.deletePreviousChar();
textEditor->setDocument(texDoc);
ich speichere also den inhalt meines editors in ein document, erzeuge einen cursor, setz ihn ans ende, lösche das vorherige char, und schreibe wieder den inhalt des Documents in meinem texteditor rein.
findet ihr das nicht umständlich?
Du hast den Sinn von QTextEdit/QTextDocument noch nicht ganz verstanden...
Dein Code macht im Prinzip das selbe, aber hier hast du das gleiche kürzer:
Dein Code macht im Prinzip das selbe, aber hier hast du das gleiche kürzer:
Code: Alles auswählen
QTextEditor *textEditor;
QTextCursor texCur(textEditor->document());
if (texCur.movePosition(QTextCursor::End)) {
texCur.deletePreviousChar();
}
-
soulsofpetro
- Beiträge: 16
- Registriert: 3. Dezember 2006 16:57