crossplatform.ru

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


  Ответ в QTextEdit, маркер
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
breeve Дата 10.4.2011, 23:09
 
Цитата(breeve @ 4.4.2011, 0:35) *
как выделить текст программно?
Общие задачи редактирования форматированного текста
breeve Дата 4.4.2011, 18:50
 
Цитата
Что именно не так?

Выделяет не то что надо. Причем только в этом случае(если текст одинаковый и выделять именно так - с одного слова на другое) неправильно.Пример на видео. Код:
void MarkedTextEdit::markSelectedText(bool mark)
{
    QString select = this->textCursor().selectedText();
    int cursorPos = this->textCursor().position();
    int sEnd = this->textCursor().selectionEnd();
    QTextCursor tx = this->textCursor();
    tx.setPosition(sEnd);
    this->setTextCursor(tx);
    qDebug() << select << this->textCursor().position();

    if(this->find(select, QTextDocument::FindBackward))
    {
        if(mark)
            this->setTextBackgroundColor(Qt::yellow);
        else
            this->setTextBackgroundColor(Qt::white);
    }
    tx.setPosition(cursorPos);
    this->setTextCursor(tx);
}


abc Дата 4.4.2011, 11:47
  find производит выделение указанного текста. Без выделения, как я понимаю, тут не обойтись. Что именно не так?
Цитата(breeve @ 4.4.2011, 0:35) *
как выделить текст программно?

вот это вопрос. Из документации я понял, как выделить слово под курсором
void QTextCursor::select ( SelectionType selection )
как выделить несколько предпочитаемых символов, я не узнал
breeve Дата 3.4.2011, 23:35
  Возникло несколько несколько вопросов:
- как выделить текст программно?
- можно ли как-то покрасить без использования функции find() ? (в определенном случае он окрашивает не то что я выделил)
abc Дата 3.4.2011, 13:06
 
Цитата(breeve @ 3.4.2011, 2:10) *
В каком пункте могут возникнуть проблемы?

пожалуй, я погорячился)
- поставили курсор. предположим, он стоит где-то в середине подсвеченной фразы
- передвигаем его назад, и с каждым передвижением проверяем, какой под курсором backgroundcolor
- как только backgroundcolor стал белым, выделяем, начиная с этой позиции, известное число символов, и изменяем backgroundcolor
breeve Дата 3.4.2011, 2:17
  Сделал так чтобы менял выделенный фрагмент текста:
    QTextEdit *aEdit = activeEdit();
    QString select = aEdit->textCursor().selectedText();
    int sEnd = aEdit->textCursor().selectionEnd();

    QTextCursor tx = aEdit->textCursor();
    tx.setPosition(sEnd);
    aEdit->setTextCursor(tx);

    if(aEdit->find(select, QTextDocument::FindBackward))
    {
        aEdit->setTextBackgroundColor(Qt::yellow);
    }
breeve Дата 3.4.2011, 1:10
 
Цитата
вряд ли возможно

Почему это не может быть возможным?
Ну если нет стандартных средств я предполагаю примерно такой алгоритм:
- Найти позицию фразы(ее координаты а точнее область);
- Перехват нажатия правой кнопки мыши в данной области;
- И добавление в контекстное меню позиции.
В каком пункте могут возникнуть проблемы?

abc Дата 3.4.2011, 0:35
 
ui->textEdit_read->moveCursor(QTextCursor::End);
    if(ui->textEdit_read->find("Этот текст будет подсвечен", QTextDocument::FindBackward))
        ui->textEdit_read->setTextBackgroundColor(Qt::yellow);
    ui->textEdit_read->moveCursor(QTextCursor::End);


Цитата(breeve @ 3.4.2011, 0:07) *
чтобы нажав правой только на эти слова в контекстном меню

вряд ли возможно
breeve Дата 2.4.2011, 23:07
  Подскажите, как можно сделать маркер в тексте. Для примера на этом сайте, если в поиск вбить фразу, то он выделит в постах те слова которые я вбил: желтый фон, красный текст.
Нашел как можно покрасить текст, во всем TextEdit'е но как покрасить определенные слова?
И как сделать так что после установки маркера например на два слова, сделать так чтобы нажав правой только на эти слова в контекстном меню был Action убрать выделение? Заранее благодарен
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 5.12.2020, 12:12