QString exchange::getMsg() { QString str = ui->msgTxtEdit->toHtml(); //清空输入框 ui->msgTxtEdit->clear(); ui->msgTxtEdit->setFocus(); return str; }//获取聊天信息 void exchange::closeEvent(QCloseEvent * e) { emit this->closeWidget(); sndMsg(UsrLeft); //断开套接字 udpSocket->close(); udpSocket->destroyed(); QWidget::closeEvent(e); } void exchange::on_pushButton_file_clicked() { QString str = QFileDialog::getOpenFileName(this, "打开文件", "."); qDebug() << str; }
时间: 2024-04-02 20:33:25 浏览: 74
这段代码包含了三个函数:
第一个函数getMsg用于获取聊天信息。它首先通过toHtml函数获取输入框中的聊天信息,并将其保存在QString对象str中。然后清空输入框内容,将光标聚焦到输入框中,并返回聊天信息。
第二个函数closeEvent用于处理窗口关闭事件。当用户关闭窗口时,会自动触发该函数。在函数内部,首先通过emit语句发送closeWidget信号,通知主界面进行更新操作。然后,调用sndMsg函数发送一个UsrLeft消息,表示用户已经离开。最后,关闭udpSocket对象,销毁它,并调用QWidget类的closeEvent函数。
第三个函数on_pushButton_file_clicked用于处理用户点击“打开文件”按钮时的操作。它通过QFileDialog对话框获取用户选择的文件路径,并将其打印输出。
相关问题
void (QComboBox:: * sizebtn)(const QString &text)=&QComboBox::currentTextChanged; connect(ui->sizeCbx,sizebtn,[=](const QString &text){ ui->msgTxtEdit->setFontPointSize(text.toDouble()); ui->msgTxtEdit->setFocus(); }); //加粗 connect(ui->boldTBtn,&QToolButton::clicked,this,[=](bool checked){ if(checked){ ui->msgTxtEdit->setFontWeight(QFont::Bold); }else{ ui->msgTxtEdit->setFontWeight(QFont::Normal); } }); //下划线 connect(ui->underlineTBtn,&QToolButton::clicked,this,[=](bool checked){ ui->msgTxtEdit->setFontUnderline(checked); ui->msgTxtEdit->setFocus(); }); //倾斜 connect(ui->italicTBtn,&QToolButton::clicked,this,[=](bool checked){ ui->msgTxtEdit->setFontItalic(checked); ui->msgTxtEdit->setFocus(); }) ; //清空 connect(ui->clearTBtn,&QToolButton::clicked,this,[=]{ ui->msgBrowser->clear(); }); //文本颜色 connect(ui->colorTBtn,&QToolButton::clicked,this,[=]{ QColor color = QColorDialog::getColor(color,this); ui->msgTxtEdit->setTextColor(color); });
这段代码主要是连接了一些 UI 组件的信号和槽函数,用于实现一些文本编辑的功能。首先定义了一个指向 QComboBox 的成员函数 `currentTextChanged` 的指针,并将其与 `sizeCbx` 组件的 `currentTextChanged` 信号关联起来。接着连接了该信号和匿名函数,用于设置当前输入框的字体大小。然后分别连接了加粗、下划线、倾斜和清空功能对应的按钮的 `clicked` 信号和相应的槽函数,用于设置当前输入框的字体加粗、下划线、倾斜和清空文本框。最后连接了文本颜色选择按钮的 `clicked` 信号和匿名函数,用于设置当前输入框的文本颜色。
void Widget::sndMsg(QtMsgType type){ QByteArray array; QDataStream stream(&array,QIODevice::WriteOnly); stream<<type<<this->getName(); switch (type) { case Msg: if(ui->msgTxtEdit->toPlainText()==""){ QMessageBox::warning(this,"警告","发送内容不能为空"); return; } stream<<this->getMsg(); break; case UserEnter: break; case UserLeft: break; } // 书写报文 udpScoket->writeDatagram(array.data(),array.size(),QHostAddress::Broadcast,this->port); } //获取用户名 QString Widget::getName(){ return this->myname; } //获取聊天内容 QString Widget::getMsg(){ QString msg=ui->msgTxtEdit->toHtml(); ui->msgTxtEdit->clear(); ui->msgTxtEdit->setFocus(); return msg; }
这段代码是发送消息的函数,其中使用了Qt的QByteArray和QDataStream类来构造消息。函数接受一个Qt消息类型,根据类型的不同,构造不同的消息。当类型为Msg时,会检查发送内容是否为空,如果为空则弹出警告框提示。然后将消息类型、发送者用户名和发送内容写入QByteArray中。最后通过UDP套接字将QByteArray以广播方式发送出去。
另外,函数中还包含了获取用户名和获取聊天内容的两个函数。获取用户名函数直接返回该窗口的用户名,获取聊天内容函数则获取聊天输入框中的内容,并清空该输入框并且将光标设置回输入框中。
阅读全文