QT QTcpSocket write发送字符串 error: no matching member function for call to 'write'

先看源码:

1
2
3
4
5
6
// 按钮,发送消息
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

 

修改代码:

1
2
3
4
5
6
7
8
9
10
11
// 按钮,发送消息
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);
}

截图:

 

 

还有一种方法:

自己把要写入的内容写到函数里,但是编译后,字符串内容就不能修改了;

1
2
3
4
5
// 按钮,发送消息
void MainWindow::on_pushButton_2_clicked()
{
    new_sock->write("he");
}

截图:

 

 

 

 

--

参考:

https://blog.csdn.net/GENGXINGGUANG/article/details/108985233

posted @   悟透  阅读(428)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示