Spellchecker
Verfasst: 11. Juni 2008 16:17
Hallo,
gibt es bei QT (vllt 4.4 ..?) einen fertigen Spellchecker? Habe momentan 4.3 drauf, kann nichts entsprechendes finden (bei 4.4 auf Anhieb auch nicht).
Momentan führe ich die Rechtschreibprüfung daher von Hand durch, mit aspell und dem durchgehen eines QTextEdit per QTextCursor (Block für Block, Wort für Wort). Funktioniert im Prinzip gut, eine Frage hätt ich dazu allerdings noch.
Wenn ich ein RTF Eingabefeld habe, in dem u. A. auch Wörter unterstrichen sind, dann unterstreicht mir der Spellchecker ein falsches Wort rot. Wenn das Wort korrigiert wird, ist das Wort gar nicht mehr unterstrichen, obwohl es vorher im normalen Text unterstrichen war. Gibts da eine Möglichkeit, mit dem Spellchecker getrennt (doppelt) zu unterstreichen? Bei Thunderbird z. B. ist das so, da unterstreicht der Spellchecker zusätzlich zur normalen Formatierung.
Die Prüfung/Markierung geht bisher so:
Das gleiche Problem hab ich dann natürlich auch, wennn ich die Prüfung ausschalten möchte. Wenn da vorher 10 Wörter rot markiert waren, sind die jetzt blind einfach nicht mehr unterstrichen, obwohl sie vorher im Text vielleicht (normal) unterstrichen waren.
Hoffe das war einigermaßen verständlich
[edit] Noch was. Gibts eigentlich ne einfachere Methode, um von Wort zu Wort zu springen? Das oben erscheint mir etwas umständlich. Sowas wie
wäre schöner.
gibt es bei QT (vllt 4.4 ..?) einen fertigen Spellchecker? Habe momentan 4.3 drauf, kann nichts entsprechendes finden (bei 4.4 auf Anhieb auch nicht).
Momentan führe ich die Rechtschreibprüfung daher von Hand durch, mit aspell und dem durchgehen eines QTextEdit per QTextCursor (Block für Block, Wort für Wort). Funktioniert im Prinzip gut, eine Frage hätt ich dazu allerdings noch.
Wenn ich ein RTF Eingabefeld habe, in dem u. A. auch Wörter unterstrichen sind, dann unterstreicht mir der Spellchecker ein falsches Wort rot. Wenn das Wort korrigiert wird, ist das Wort gar nicht mehr unterstrichen, obwohl es vorher im normalen Text unterstrichen war. Gibts da eine Möglichkeit, mit dem Spellchecker getrennt (doppelt) zu unterstreichen? Bei Thunderbird z. B. ist das so, da unterstreicht der Spellchecker zusätzlich zur normalen Formatierung.
Die Prüfung/Markierung geht bisher so:
Code: Alles auswählen
do
{
cur.movePosition(QTextCursor::EndOfWord, QTextCursor::KeepAnchor);
if (!cur.selectedText().isEmpty())
{
normalFormat = errorFormat = cur.charFormat();
errorFormat.setUnderlineColor(QColor(Qt::red));
errorFormat.setUnderlineStyle(QTextCharFormat::SpellCheckUnderline);
normalFormat.setUnderlineStyle(QTextCharFormat::NoUnderline);
if (spellCheckWord(cur.selectedText()))
cur.setCharFormat(errorFormat);
else
cur.setCharFormat(normalFormat);
}
}
while (cur.movePosition(QTextCursor::NextWord, QTextCursor::MoveAnchor));
Hoffe das war einigermaßen verständlich
[edit] Noch was. Gibts eigentlich ne einfachere Methode, um von Wort zu Wort zu springen? Das oben erscheint mir etwas umständlich. Sowas wie
Code: Alles auswählen
while (document.getNextWord())