我正在构建Qt Gui应用程序以监视来自串行端口的数据。我正在使用qextserialport库。这是我遇到的问题。

void MainWindow::onDataAvailable()
{
    QString data_ser,data_trimmed;
    port->readLine(data_ser.data(),0);
    data_trimmed = data_ser.trimmed();
    ui->textEdit->append(data_trimmed);
}


readLine方法的第一个参数应为char*类型。如何将QChar*返回的data_ser.data()转换为char*。 QString和我也需要std::string方法。

这是我得到的错误:

没有匹配的成员函数可调用“ readLine”。
第一个参数没有从'QChar *'到'char *'的已知转换。

如何解决呢?

最佳答案

这有点棘手,因为您需要分配空间以将readline()复制到其中。

您可以使用an initial size创建QString,但就我个人而言,我将为char *分配一个固定的合理缓冲区大小,然后根据该大小创建QString-在调试时,它会变得更加清晰。

关于c++ - Qchar *到char *的转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13499687/

10-11 00:38