Название: QTextEdit количество строк Отправлено: ecspertiza от Ноябрь 10, 2010, 22:29 Возможно глупый и тривиальный вопрос, но я никак не могу найти решение, как получить количество строк в QTextEdit ?
Если текст вносится без символа перевода строки, то ф-ция QTextEdit::document()->lineCount() возвращает еденицу, хотя реально эта строка может быть очень длинной и будет отображаться как пять строк к примеру. Пытался просто посчитать деля длину текста на длину QTextEdit получается не точное значение, так как QTextEdit переносит по словам. Вообщем вопрос банален как получить реальное количество строк в QTextEdit ? Название: Re: QTextEdit количество строк Отправлено: andrew.k от Ноябрь 11, 2010, 10:42 Возможно глупый и тривиальный вопрос, но я никак не могу найти решение, как получить количество строк в QTextEdit ? а зачем тебе это нужно?Если текст вносится без символа перевода строки, то ф-ция QTextEdit::document()->lineCount() возвращает еденицу, хотя реально эта строка может быть очень длинной и будет отображаться как пять строк к примеру. Пытался просто посчитать деля длину текста на длину QTextEdit получается не точное значение, так как QTextEdit переносит по словам. Вообщем вопрос банален как получить реальное количество строк в QTextEdit ? Название: Re: QTextEdit количество строк Отправлено: crossly от Ноябрь 11, 2010, 11:09 Цитировать Если текст вносится без символа перевода строки, то ф-ция QTextEdit::document()->lineCount() возвращает еденицу, хотя реально эта строка может быть очень длинной и будет отображаться как пять строк к примеру. и правильно возвращает.... потому как в данном случае кол-во строк будет зависеть от ширины QTextEdit.... Название: Re: QTextEdit количество строк Отправлено: GreatSnake от Ноябрь 11, 2010, 11:21 Не уверен, но можно попробовать через QTextEdit::document()->findBlock( 0 ).lineCount().
Название: Re: QTextEdit количество строк Отправлено: ecspertiza от Ноябрь 11, 2010, 12:11 а зачем тебе это нужно? Мне нужно рассчитать высоту QTextEdit , то есть высота QTextEdit должна быть чуть больше чем высота всего текста, что бы не было линий прокрутки Не уверен, но можно попробовать через QTextEdit::document()->findBlock( 0 ).lineCount(). .тоже возвращает 1 вроде как. и правильно возвращает.... потому как в данном случае кол-во строк будет зависеть от ширины QTextEdit.... вот по сути мне и нужно получить реальное кол-во строк с зависимостью от ширины. Название: Re: QTextEdit количество строк Отправлено: Пантер от Ноябрь 11, 2010, 12:14 Посмотри в исходниках PSI, там это реализовано.
Название: Re: QTextEdit количество строк Отправлено: crossly от Ноябрь 11, 2010, 14:05 либо посмотри как в QLAbel реализовано.... в лубом случае нужно копать в сторону чего нибудь на heightForWidth похожего...
Название: Re: QTextEdit количество строк Отправлено: GreatSnake от Ноябрь 11, 2010, 16:13 Я когда-то заморачивался с установкой размера QTextEdit-a с заданным содержанием.
Реализовывал свой ToolTip на основе QTextBrowser-a. Может тебе это поможет: Код
Название: Re: QTextEdit количество строк Отправлено: andrew.k от Ноябрь 11, 2010, 16:22 а зачем тебе это нужно? Мне нужно рассчитать высоту QTextEdit , то есть высота QTextEdit должна быть чуть больше чем высота всего текста, что бы не было линий прокрутки Тебе нужно, чтобы полосы прокрутки не появлялись? Так ты можешь поставить их в режим авто и отслеживать их появление. Появились - больше текста добавлять нельзя или что там у тебя, расширить редактор вниз. Высоту строки текста определить не сложно (это на сколько надо растянуть редактор). Название: Re: QTextEdit количество строк Отправлено: ecspertiza от Ноябрь 13, 2010, 22:11 GreatSnake, спасибо большое, твой код шикарно работает, с небольшими поправками, ты изменяешь весь размер ,а я только высоту, вообщем еще раз спасибо :)
|