Cześć,
sorka za dość pogmatwany tytuł, nie wiem jak to inaczej wytłumaczyć :P
Mam dwa textedity: w jednym sobie użytkownik pisze co chce, a w drugim wyświetla się przetłumaczony kod morsa. Działa w porządku poza jedną rzeczą: nie mam bladego pojęcia jak usuwać tekst z drugiego textedita jeśli użytkownik usuwa tekst w pierwszym. Np.:
User input(QTextEdit) : dupa
=>
Converted(QTextEdit) : _.. .._ .__. ._
Jeśli usunę a
w pierwszym TextEdicie:
User input(QTextEdit) : dup
=>
Converted(QTextEdit) : _.. .._ .__.
Myślałem nad użyciem QString::remove()
, ale skąd będę wiedział co usunąć? Może napisać jakiś stos i wrzucać na niego input użytkownika, a jak usunie tekst, to zdjąć z niego wartość zaczynając od ostatniej? Tyle, że to się sypnie jak user usunie tekst z innego miejsca niż końca...
Metoda w której wszystko się dzieje:
void MainWindow::on_textEdit_textChanged()
{
//if (uzytkownik usuwa tekst)
//usun tez tekst z innego TextEdita.
std::string stdText = ui->textEdit->toPlainText().toStdString();
if (!stdText.empty()) {
char lastCharacter = stdText[stdText.length() - 1];
if (isspace(lastCharacter))
ui->textEdit_2->insertPlainText(" ");
ui->textEdit_2->insertPlainText(morseCodes[toupper(lastCharacter)] + " ");
}
}
Pewnie jakbym przeczytał jakąś książkę o Qt5, to bym znał rozwiązanie, bo pewnie jest proste jak drut :P
Pozdro!