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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.