Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Строка из textEdit
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
adamo86
Есть textEdit, который содержит "Сегодня был дождь и поэтому я не смог придти. Но завтра обязательно приду".
При щелчке курсором на слово "обязательно" необходимо выделить до знака '.' предложение и записать в переменную QString str. Должно получиться:
str = "Но завтра обязательно"

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

Brainiac
Цитата(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
Цитата(Brainiac @ 14.1.2014, 13:29) *
Очень возможно что не оптимально

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

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

Я сделал очевидное. Студенту для лабы сгодится. Я не разбирался этим, а вы бы могли и написать как это сделать лутше если знаетк.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.