使用QT在GUI上显示字符串
我正在尝试使用QT通过GUI上的串行端口显示字符串。 计算机显示出像~S~R这样的奇怪字符��~~S~R��~~S~而不是应该从mote发送的消息。数据来自Z1 mote,该mote使用数据编码格式JSON。我认为这应该是一个类型转换的问题。 以下是显示消息的插槽代码:使用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
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上。因此我认为发送端和接收端的串行参数是相同的。”我不会在最后一句话上下赌注,只要你在发送/接收之前没有明确设置双方的参数。