我正在构建一个 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。
关于c++ - Qchar* 到 char* 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13499687/