Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QLineEdit и подсветка синтаксиса
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
bobic
Доброго времени суток!

В QT есть очень удобный класс для подсветки синтаксиса - QSyntaxHighlighter - без проблем прикручивается на QTextEdit, аналогично QTExtEdit поддерживает html, и тоже проблем нет оформить подсветку в какой-либо тег. Однако стоит задача сделать то же самое с QLineEdit - а туда Highlighter уже не прикручивается, и html тоже не поддерживается. Нет ли у кого идей в каком направлении копать надо?
void*
а не проще ли просто сделать узкого размера QTextEdit? :)
bobic
Cделать узкого размера можно, но беда в том, что при нажатии enter сноска будет происходить (чего нет в LineEdit).
Red Devil
А можно сделать, чтобы не происходила.
Перехватывай нажатия enter и return и не пропускай их к обработику QTextEdit.
void*
именно, и сделай фиксированную высоту поля ввода (чтобы юзер вдруг не растянул ее и не разгадал секрета :) )
bobic
Спасибо за рекомендацию. А как побороться с пользователем, который вставит из буфера большой текст, в котором будут \n-ки? Просто заменить после вставки?
Red Devil
Да.
Например можешь по сигналу от QTextDocument - void blockCountChanged ( int newBlockCount ), если количество строк больше 1-ой получается (видишь блок - читаешь строка), получить текст, изменить и вставить обратно.
linch
А какую именно фиксированную высоту нужно делать? Ведь надо учитывать размер шрифта.
Я делал так:

setFixedHeight(fontMetrics().lineSpacing())


Но этого вроде маловато. Поэтому прибавлял сверх еще несколько пикселов. Но может быть есть способ сделать это более универсально?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.