0

シリアル ポートからのデータを監視するための 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*.How to convertQChar*によって返されdata_ser.data()char*.Istd::stringの代わりに使用することもできましQStringたが、qt gui オブジェクトは QString との互換性が高く、trimmedメソッドも必要です。

これが私が得ているエラーです:

「readLine」の呼び出しに一致するメンバー関数がありません。第 1 引数の 'QChar *' から 'char *' への既知の変換はありません。

これを解決するには??

4

2 に答える 2

3

できないか、少なくともしたくありません (もちろん、C++ では QChar* を char* にキャストできますが、それでは機能しません)。データを QByteArray に読み込み、それを QString に変換するだけです。

于 2012-11-21T18:34:15.340 に答える
2

readline() をコピーするためにスペースを割り当てる必要があるため、これは少し注意が必要です。

初期サイズで QString を作成できますが、個人的には、適切な固定バッファー サイズで char* を割り当て、そこから QString を作成します。これにより、デバッグ時により明確になります。

于 2012-11-21T18:33:39.203 に答える