crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 23:54