我有以下代码可将流程的所有输出打印到文本字段中:
data = self.m_process.readAllStandardOutput()
s = str(data)
self.m_ui.b_renderOutput.append(s)
我在输出中得到的是:
b''
b''
b''
b'\r\nStarting "C:\\Program Files'
b''
b'\\Autodesk\\Maya2018\\bin\\mayabatch.exe"\r\n'
b'Initialized VP2.0 renderer {\r\r\n'
我无法对其进行解码并以正确的方式进行打印。我知道来自readAllStandardOutput的是一个QByteArray
答案 0 :(得分:2)
如果要将QByteArray转换为字符串,请先使用data()方法将其转换为字节,然后再使用decode()将其转换为字符串:
data = self.m_process.readAllStandardOutput()
s = data.data().decode() # <---
self.m_ui.b_renderOutput.append(s)
另一种方法是将QByteArray转换为bytearray,然后使用decode():
data = self.m_process.readAllStandardOutput()
s = bytearray(data).decode() # <---
self.m_ui.b_renderOutput.append(s)