Отправка сообщений по Enter

This commit is contained in:
2025-10-15 16:48:23 +03:00
parent 79c5354f58
commit 2cf219ce94
4 changed files with 49 additions and 37 deletions

View File

@@ -11,16 +11,25 @@
MessangerWidget::MessangerWidget(QWidget *parent) :
QWidget(parent),
oneDialogMessenger(nullptr),
ui(new Ui::MessangerWidget)
ui(new Ui::MessangerWidget),
myTextEdit(nullptr)
{
ui->setupUi(this);
ui->btnSend->setObjectName("btnSend");
ui->editMsg->setObjectName("editMsg");
ui->btnSend->setObjectName("btnSend");
ui->lblUser->setObjectName("MessangerWidgetLblUser");
ui->lblAvatar->setObjectName("MessangerWidgetLblAvatar");
ui->lblLoggedIn->setObjectName("MessangerWidgetLblLoggedIn");
myTextEdit = new MyTextEdit();
connect(myTextEdit, &MyTextEdit::signal_pressEnter, this, &MessangerWidget::on_btnSend_clicked);
myTextEdit->setObjectName("editMsg");
myTextEdit->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
myTextEdit->setFixedHeight(65);
ui->horizontalLayout_EditMsg->addWidget(myTextEdit);
}
MessangerWidget::~MessangerWidget()
@@ -126,22 +135,14 @@ void MessangerWidget::updateHeader(User user)
void MessangerWidget::on_btnSend_clicked()
{
QString text = ui->editMsg->toPlainText();
QString text = myTextEdit->toPlainText();
QString from = QString::number(userLocalGUI.getID());
QString to = QString::number(userRemote.getID());
ClientMessage message = ClientMessage(from, to, text);
emit signal_sendMessage(message);
ui->editMsg->clear();
}
void MessangerWidget::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Return)
{
ui->btnSend->click();
}
myTextEdit->clear();
}
void MessangerWidget::changeEvent(QEvent *event)
@@ -152,3 +153,20 @@ void MessangerWidget::changeEvent(QEvent *event)
ui->retranslateUi(this); // переведём окно заново
}
}
void MyTextEdit::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter)
{
if(QApplication::keyboardModifiers().testFlag(Qt::ControlModifier))
{
this->insertPlainText("\n");
}
else
{
emit signal_pressEnter();
return;
}
}
QTextEdit::keyPressEvent(event);
}