Python TypeError:QByteArray中需要长度为1的字节或ASCII字符串?
我希望这能奏效。但事实并非如此。我做错了什么Python TypeError:QByteArray中需要长度为1的字节或ASCII字符串?,python,pyqt5,Python,Pyqt5,我希望这能奏效。但事实并非如此。我做错了什么 from PyQt5.QtCore import QByteArray str = 'foobar' b = bytes(str, 'UTF-8') print (b) print (len(b)) arr = QByteArray(len(b), b) 但我得到: b'foobar' 6 Traceback (most recent call last): File "pyqt_wtf
from PyQt5.QtCore import QByteArray
str = 'foobar'
b = bytes(str, 'UTF-8')
print (b)
print (len(b))
arr = QByteArray(len(b), b)
但我得到:
b'foobar'
6
Traceback (most recent call last):
File "pyqt_wtf_again.py", line 9, in <module>
arr = QByteArray(len(b), b)
TypeError: bytes or ASCII string of length 1 expected
b'foobar'
6.
回溯(最近一次呼叫最后一次):
文件“pyqt_wtf_reach.py”,第9行,在
arr=QByteArray(len(b),b)
TypeError:需要长度为1的字节或ASCII字符串
这难道不管用吗?有没有理由需要一个
QByteArray
?我这样问是因为有人说“如果Qt需要QByteArray,那么PyQt5也会接受一个字节”,所以似乎在很多情况下,实际上不需要将bytes
转换为QByteArray
。一定要不时查看文档P初始化函数的形式为QByteArray(len,byte)
这将创建一个QByteArray
,len
字节长,填充byte
。在您的情况下,只需执行arr=QByteArray(b)
。即可解决问题。事实上,医生说@ByteArray(len,byte)。这让我相信(len(b),b)是正确的参数。似乎,人们必须经常查看文档,才能错过正确的内容;)