Qchar* 到 char* 的转换



我正在构建一个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* 类型。如何将data_ser.data()返回的QChar*转换为char*。我本可以使用std::string而不是QString但是qt gui对象与QString更好地兼容,我也需要trimmed方法。

这是我收到的错误:

没有用于调用"readLine"的匹配成员函数。对于第一个参数,没有从"QChar *"到"char *"的已知转换。

如何解决这个问题??

你不能

,或者至少你不想这样做(当然,C++你可以将QChar*转换为char*,但这不会使它工作)。只需将数据读取到QByteArray中,然后将其转换为QString。

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

您可以创建一个具有初始大小的 QString,但就我个人而言,我会分配一个具有固定合理缓冲区大小的 char*,然后从中创建 QString - 这使调试时更加清晰。

相关内容

  • 没有找到相关文章

最新更新