Доделал сообщения в Мессенджере

This commit is contained in:
krivoshein
2024-12-23 12:27:44 +03:00
parent 5e32b53f1b
commit 30ad6330a4
35 changed files with 355 additions and 382 deletions

View File

@@ -4,7 +4,8 @@
MsgWidget::MsgWidget(QString avatar, AligneAvatar aligneAvatar, int width, QWidget *parent) :
QWidget(parent),
ui(new Ui::MsgWidget)
ui(new Ui::MsgWidget),
widthEdit(100)
{
ui->setupUi(this);
@@ -59,7 +60,7 @@ void MsgWidget::setAvatar(QString avatar)
void MsgWidget::setWidth(int width)
{
this->setFixedWidth(width);
ui->textEdit->setFixedWidth(width - 200);
widthEdit = width - 200;
}
void MsgWidget::setText(QString text)
@@ -71,11 +72,19 @@ void MsgWidget::on_textEdit_textChanged()
{
QString text = ui->textEdit->toPlainText();
QFontMetrics metricsFont(ui->textEdit->font()); //метрики шрифта
QRect textRect = metricsFont.boundingRect(QRect(0, 0, 0, 0), 0 , text); //геометрические параметры текста (высота/ширина в пикселях)
QRect textRect = metricsFont.boundingRect(QRect(0, 0, 0, 0), 0, text); //геометрические параметры текста (высота/ширина в пикселях)
int X = 10; // отступы
this->setFixedHeight(textRect.height()+X + 20);
ui->textEdit->setFixedWidth(textRect.width()+X);
ui->textEdit->setFixedHeight(textRect.height()+X);
if(textRect.width() > widthEdit)
{
textRect = metricsFont.boundingRect(QRect(0, 0, widthEdit, 10), Qt::TextWordWrap, text);
ui->textEdit->setFixedHeight(textRect.height()+X);
this->setFixedHeight(textRect.height()+X + 20);
}
else
{
ui->textEdit->setFixedWidth(textRect.width()+X);
ui->textEdit->setFixedHeight(textRect.height()+X);
this->setFixedHeight(textRect.height()+X + 20);
}
}

View File

@@ -33,6 +33,8 @@ private slots:
private:
Ui::MsgWidget *ui;
int widthEdit;
};
#endif // MSGWIDGET_H

View File

@@ -73,7 +73,7 @@
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
<enum>QAbstractScrollArea::AdjustIgnored</enum>
</property>
</widget>
</item>