Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用QT在GUI上显示字符串_Qt - Fatal编程技术网

使用QT在GUI上显示字符串

使用QT在GUI上显示字符串,qt,Qt,我正在尝试使用QT通过GUI上的串行端口显示字符串。 计算机显示出像~S~R这样的奇怪字符��~~S~R��~~S~而不是应该从mote发送的消息。数据来自Z1 mote,该mote使用数据编码格式JSON。我认为这应该是一个类型转换的问题。 以下是显示消息的插槽代码: void MainWindow::receive() { QByteArray data = port.readAll(); QString command(data) ; ui->textE

我正在尝试使用QT通过GUI上的串行端口显示字符串。 计算机显示出像~S~R这样的奇怪字符��~~S~R��~~S~而不是应该从mote发送的消息。数据来自Z1 mote,该mote使用数据编码格式JSON。我认为这应该是一个类型转换的问题。 以下是显示消息的插槽代码:

void MainWindow::receive()
{
    QByteArray data = port.readAll();

    QString command(data)  ;

    ui->textEdit_Status->insertPlainText(command);
}
编辑:来自OP的十六进制输出:

7e530002000061127e7e52ef817e

我们如何在不了解您所谈论的数据的情况下帮助您?请您的问题解释它的来源和编码方式。
QString命令(数据)看起来太不具体了。您收到的数据的编码是什么?它是否包含二进制数据/不可打印字符?然后data.toHex()可能是您要显示以进行调试的内容。默认情况下,QString for const char*和QByteArray将使用QString::fromscii for Qt4,QString::fromUtf8 for Qt5-在Qt4的情况下,fromscii将使用QTextCodec::setcodeforcstrings()设置的编解码器;如果未设置编解码器,则使用QString::fromratin1。readAll()返回的数据
不是你想象的那样。添加一个
qDebug()@Francis我删除了我的答案,因为接收方的字符串编码似乎没有问题。您写道:“我用另一个Z1 mote尝试了相同的Qt代码,它上载了一个测量温度的程序,并且温度值成功地显示在GUI上。因此我认为发送端和接收端的串行参数是相同的。”我不会在最后一句话上下赌注,只要你在发送/接收之前没有明确设置双方的参数。