我正在构建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/