Сохранить один символ - PullRequest
0 голосов
/ 02 марта 2020

все. Я создал простое приложение textedit. Я хотел бы взять один символ всякий раз, когда пользователь пишет его с помощью клавиатуры. Я решил решить эту проблему следующим образом:

void MainWindow::on_textEdit_textChanged()
{
    QString str= ui->textEdit->toPlainText();

    if (str.size()==0){
        pos=0;
    } else {      
        if(pos<str.size()) {
            QChar char_prel=str.at(pos);
            pos++;
            chars.push_back(char_prel);
        } else {
            pos=0;
            QString str=ui->textEdit->toPlainText();
            chars.clear();

            for(int i = 0; i < str.length(); i++) {
                QChar char_prel=str.at(i);
                chars.push_back(char_prel);
                pos++;
            }
        }
    }
}

Решение не работает, потому что каждый раз я читаю всю строку в блоке редактирования, используя:

 QString str= ui->textEdit->toPlainText(); 

и из этой строки я беру последний вставленный символ. Я хочу сделать то же самое без использования toPlaintText (). Спасибо за ответ

1 Ответ

1 голос
/ 02 марта 2020

Если вы обрабатываете KeyPressEvent QTextEdit, у вас будет параметр типа QKeyEvent *, давайте назовем этот "e".

Тогда вы можете использовать "e- > text () "чтобы получить соответствующий символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...