Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] поменять цвет фона текста в строке


Автор: anatox91 12.10.2011, 16:05
нужно зная номер строки поменять цвет фона текста для определенной строки(т.е. как бы выделить определенную строку). Как это возможно сделать?

Автор: null56 12.10.2011, 16:56
не то?
Цитата

void QTextEdit::setExtraSelections ( const QList<ExtraSelection> & selections )

This function allows temporarily marking certain regions in the document with a given color, specified as selections. This can be useful for example in a programming editor to mark a whole line of text with a given background color to indicate the existence of a breakpoint.
This function was introduced in Qt 4.2.

Автор: math64 12.10.2011, 17:09
Посмотри пример Syntax Highlighter - там делается даже более сложное, чем вам нужно.

Автор: anatox91 12.10.2011, 18:13
null56, именно то что нужно, спасибо

Добавлено через 3 минуты и 59 секунд
math64, там подсветка текста, а мне нужно подсветку фона строки

Добавлено через 14 минут и 3 секунды
появился тогда другой вопрос - как получить нужный курсор для использования, зная номер строки?

Автор: anatox91 12.10.2011, 18:43
все, разобрался, слишком как-то много лишних действий надо делать как мне кажется
Код

int lineNumber = 0;
    QTextEdit::ExtraSelection selection;

    QTextCursor cursor = QTextCursor(ui->textEdit->document());
    cursor.movePosition(QTextCursor::Start);
    cursor.movePosition(QTextCursor::Down, QTextCursor::MoveAnchor, lineNumber);
    cursor.select(QTextCursor::LineUnderCursor);

    QTextCharFormat format;
    format.setBackground(Qt::red);

    selection.cursor = cursor;
    selection.format = format;
    ui->textEdit->setExtraSelections(QList<QTextEdit::ExtraSelection>() << selection);


если кто знает способ попроще очень хотелось бы взглянуть

Добавлено через 1 минуту и 9 секунд
плюс данный код выделяет только тут часть строки где есть текст, а есть ли какой-нибудь способ выделить всю отображаемую строку, даже там где нет никаких символов?

Добавлено через 3 минуты и 42 секунды
вот о чем я
http://clip2net.com/s/1eHcZ

Автор: anatox91 13.10.2011, 00:18
так есть какой-нибудь способ выделить всю строку целиком, всю линию? точнее поменять у нее background

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)