Python PyQt5,QByteArray切片返回str,如何获取字节或int?

Python PyQt5,QByteArray切片返回str,如何获取字节或int?,python,pyqt5,Python,Pyqt5,与我的问题最接近的是,不是PyQt5示例 我在PyQt5中使用QByteArray通过QSerialPort接收数据包。我的系统是实时的。主机和外围设备没有完全同步。我可以在一个定时器周期内读取部分数据包。因此,我设计了一种数据包格式,它以字节1为单位给出有效负载长度,作为一个无符号8位整数。如果我在一个周期内没有收到预期的字节数,我知道在下一个周期继续读取。有效负载还包含二进制内容,而不是ASCII 今天我惊奇地发现QByteArray[slice]和QByteArray.at(value)返

与我的问题最接近的是,不是PyQt5示例

我在PyQt5中使用QByteArray通过QSerialPort接收数据包。我的系统是实时的。主机和外围设备没有完全同步。我可以在一个定时器周期内读取部分数据包。因此,我设计了一种数据包格式,它以字节1为单位给出有效负载长度,作为一个无符号8位整数。如果我在一个周期内没有收到预期的字节数,我知道在下一个周期继续读取。有效负载还包含二进制内容,而不是ASCII

今天我惊奇地发现QByteArray[slice]和QByteArray.at(value)返回Pythonstring对象。我只需要一个字节的数值,以便检查有效负载长度

有没有一个简单的方法来实现这一点?这是可行的,但我觉得它非常复杂:

length=int.from_字节(字节(数据包[1],encoding=“ascii”),byteorder=“big”)

我想知道在Python标准库或PyQt5.QByteArray中是否遗漏了一些有用的方法


(环境详细信息:Anaconda虚拟环境中的PyQt 5.9.2和Python 3.8.3,运行在Ubuntu 20.04上。这些详细信息都不重要,但我提供它们是为了完整性。最终我将需要跨平台功能,我现在正在构建的软件的早期版本已经实现了这一点。)

QByteArray可以使用
字节(byteArray).decode()
转换为python字符串,因此您可以尝试转换该值,然后只需使用
int()
。您可以显示发送信息的代码以及QByteArray的内容。