QT QTcpSocket write发送字符串 error: no matching member function for call to 'write'
先看源码:
// 按钮,发送消息
void MainWindow::on_pushButton_2_clicked()
{
QString send_msg = ui->textEdit_2->toPlainText(); // 获取文本框内容
new_sock->write(send_msg);
}
截图:

控制台错误提示:

从控制台的错误提示看出,write 的参数是要 char 类型的,从界面的 textEdit_2 获取的是 QString 类型,
解决方法:
将 QString 转成 char
修改代码:
// 按钮,发送消息
void MainWindow::on_pushButton_2_clicked()
{
QString send_msg = ui->textEdit_2->toPlainText(); // 获取文本框内容
// write需要的 char 类型字符串,textEdit_2里获取的是 QString 类型
// 所以要先转换一下,QString -> string -> char
std::string s=send_msg.toStdString();
const char *ch_a = s.c_str();
new_sock->write(ch_a);
}
截图:

还有一种方法:
自己把要写入的内容写到函数里,但是编译后,字符串内容就不能修改了;
// 按钮,发送消息
void MainWindow::on_pushButton_2_clicked()
{
new_sock->write("he");
}
截图:

--
参考:
https://blog.csdn.net/GENGXINGGUANG/article/details/108985233
浙公网安备 33010602011771号