LINUX.ORG.RU

Т.е. ты хочешь чтобы диалог растягивался по мере ввода текста? Вообще, если ты поместил виджет в layout, то у тебя должно остаться крайне мало причин изменять его размер "вручную".

mannaz
()

Например так.

Наследуешься, в keypressevent вначале обрабатываешь родителем, потом берешь плейнтекст, скармливаешь его QFontMetrics, и ресайзишь под размер.

FeiWongReed
()

Получаешь ширину текста, добавляешь к ней 2 размера отступов:

textWidget->document()->documentLayout()->documentSize().width() + textWidget->document()->documentMargin() * 2

Ширину поменять может, например, setFixedWidth()

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

Там QVBox только чтобы под этим текстом разместить кнопки.

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

Не сильно прямое решение (я надеялся что сам виджет умеет растягиваться), однако работает. Осталось допилисть чтобы в случае появления вертикального скролла он не налезал на текст :)

Спасибо!

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

>сам виджет умеет растягиваться

Так унаследуй его, и перегрузи setPlainText():

void setPlainText ( const QString & text ) {
	QPlainTextEdit::setPlainText( text );

	// сюда добавь изменение размера

}

>в случае появления вертикального скролла он не налезал на текст

Добавляй ширину скроллбара, если он видим.

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

setPlaintText - невиртуальный публичный слот.
При вводе новых символов он не вызывается.
Так что это не решит вопроса с изменением размеров при вводе.

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

> Не сильно прямое решение
Ты хочешь не то, чтобы странного, но необычного.
И наследование для таких задач - вполне себе идеология QT.

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

>setPlaintText - невиртуальный публичный слот. >При вводе новых символов он не вызывается. >Так что это не решит вопроса с изменением размеров при вводе.

Автор, что-то сказал про ввод новых символов? Я не вижу.

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

А, действительно.
Невнимательно прочитал.
Тогда конечно, все еще проще.

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

Значит я таки добавлю: поле редактируемое. И да, пользователь туда будет писать всякие новые символы.

Впрочем решение уже написано и работает.

/thread

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