Как подстраивать QTextEdit под размеры текста
Как можно подстроить размеры QTextEdit под размеры содержимого, те если текст выходит за его границы он не добавлял scroll, а менял свой размер чтобы полностью отобразить текст, и не переносил его при выходе за его границы.
Ответы (2 шт):
Автор решения: Иван Петрухин
→ Ссылка
Смею предположить, что стоит создать свой MyTextEdit, унаследовать его от QTextEdit и переопределить метод event(QEvent *e), а дальше ручками менять размеры QTextEdit
Автор решения: Sergey Tatarincev
→ Ссылка
Если "на коленках", то примерно так. Необходимо добавить слот для сигнала textChanged():
void MainWindow::on_textEdit_textChanged()
{
// !!!! Для обоих скроллбаров вашего QTextEdit необходимо установить Qt::ScrollBarAlwaysOff
QString s = ui->textEdit->toPlainText(); // нам понадобится сам текст
QFontMetrics m(ui->textEdit->font()); // и метрики шрифта
QRect widgetRect = ui->textEdit->rect(); // размер виджета
QRect textRect = m.boundingRect(QRect(0,0,0,0),Qt::TextWordWrap,s); // Найдем геометрические параметры текста (высота/ширина в пикселях) с учетом перевода строк
int X = 10; // Честно говоря лень определять отступы. Если критично - вычисляйте сами
ui->textEdit->resize(textRect.width()+X,textRect.height()+X); // Изменяем размер виджета
}