Цитата(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);
}
Первая идея. Очень возможно что не оптимально
но работает