LINUX.ORG.RU

Qt. Проверить влезает ли текст по горизонтали в QTextEdit

 , , ,


0

1

В моём QTextEdit оба скроллбара всегда видны. По умолчанию текст двигается горизонтально. Но когда текст полностью влезает в QTextEdit по горизонтали, мне надо чтобы он двигался вертикально. Как можно сделать соответствующую проверку?



Последнее исправление: user08 (всего исправлений: 1)

te->document()->idealWidth(), ЕМНИП. Плюс там еще margins есть, но они вроде в 0 по дефолту.

anonymous
()
Ответ на: комментарий от anonymous

te->document()->idealWidth(), ЕМНИП. Плюс там еще margins есть, но они вроде в 0 по дефолту.

А специального решения нет для этого? Или какого-нибудь надёжного или проверенного, желательного с учётом возможных последующих изменений формы.

Надо проверить есть ли полоска и кнопки на скроллбаре энейблены или нет, может сам скроллбар может об этом сказать?

user08
() автор топика
Последнее исправление: user08 (всего исправлений: 2)
Ответ на: комментарий от user08

Из описания не совсем понятна задача. Чем то, что ты хочешь, отличается, от, например, te->setWordWrapMode( QTextOption::WordWrap )?

anonymous
()
Ответ на: комментарий от anonymous

Да, если у него min != max, то он активен.

Спасибо!

user08
() автор топика
Ответ на: комментарий от user08

У меня возвращается QTextEdit::NoWrap, независимо от того, влезает текст или нет

Потому что это означает не то, что ты думаешь. LineWrapMode определяет, будет ли текст переноситься (умещаться по ширине) или нет. Если будет — то и полос прокрутки ты не увидишь.

Вообще как вариант можешь проверить через int QFontMetrics::width(const QString &text, int len = -1) const, оно вернёт тебе ширину текста, которую ты сможешь сравнить с шириной твоей области редактирования, но, IMHO, это костыльно

XMs ★★★★★
()
Ответ на: комментарий от XMs

QFontMetrics::width

Нельзя, т.к. QTextEdit предполагает возможность сложного форматирования и стилей.

anonymous
()

По умолчанию текст двигается горизонтально. Но когда текст полностью влезает в QTextEdit по горизонтали, мне надо чтобы он двигался вертикально.

по умолчанию текст прокручивается вертикально, а ты включил режим QTextEdit::NoWrap
верни назад QTextEdit::WidgetWidth и не морочь людям головы

dt1 ★★
()
Ответ на: комментарий от dt1

Видимо не все поняли вопрос. В моём приложении в одном QTextEdit текст прокручивается по умолчанию вертикально. Но вопрос уже решён. Всем спасибо.

user08
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.