crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Строка из textEdit, Как получить подстроку из предложения
adamo86
  опции профиля:
сообщение 21.9.2013, 23:11
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 17.9.2013
Пользователь №: 3929

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть textEdit, который содержит "Сегодня был дождь и поэтому я не смог придти. Но завтра обязательно приду".
При щелчке курсором на слово "обязательно" необходимо выделить до знака '.' предложение и записать в переменную QString str. Должно получиться:
str = "Но завтра обязательно"

Курсор окна textEdit я получаю следующим образом:
QTextCursor cursor(ui->textEdit->textCursor());

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Brainiac
  опции профиля:
сообщение 14.1.2014, 10:29
Сообщение #2


Новичок


Группа: Неактивирован
Сообщений: 5
Регистрация: 10.1.2014
Пользователь №: 4031

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(adamo86 @ 21.9.2013, 22:11) *
Есть textEdit, который содержит "Сегодня был дождь и поэтому я не смог придти. Но завтра обязательно приду".
При щелчке курсором на слово "обязательно" необходимо выделить до знака '.' предложение и записать в переменную QString str. Должно получиться:
str = "Но завтра обязательно"

Курсор окна textEdit я получаю следующим образом:
QTextCursor cursor(ui->textEdit->textCursor());

void Test::on_textEdit_selectionChanged()
{
    QString str = ui->textEdit->toPlainText();
    int ptr = ui->textEdit->textCursor().selectionStart(), s, e, n = str.length();

    for (s = ptr; s >= 0; --s){
        if (str.at(s) == '.'){
            break;
        }
    }
    ++s;

    if (s >= n){
        ui->textEdit->selectAll();
        return;
    }

    for (e = ptr, n = str.length(); e < n; ++e){
        if (str.at(e) == '.') break;
    }

    QTextCursor c = ui->textEdit->textCursor();
    c.setPosition(s);
    c.setPosition(e, QTextCursor::KeepAnchor);
    ui->textEdit->setTextCursor(c);
}

Первая идея. Очень возможно что не оптимально :) но работает
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.2.2014, 8:16
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Brainiac @ 14.1.2014, 13:29) *
Очень возможно что не оптимально

мягко говоря )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Brainiac
  опции профиля:
сообщение 6.2.2014, 9:38
Сообщение #4


Новичок


Группа: Неактивирован
Сообщений: 5
Регистрация: 10.1.2014
Пользователь №: 4031

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 6.2.2014, 7:16) *
Цитата(Brainiac @ 14.1.2014, 13:29) *
Очень возможно что не оптимально

мягко говоря )

Я сделал очевидное. Студенту для лабы сгодится. Я не разбирался этим, а вы бы могли и написать как это сделать лутше если знаетк.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 12:44