[PyQt] Using QSerialPort() instead of pyserial

Phil phil_lor at bigpond.com
Mon Nov 20 08:02:57 GMT 2017


On 20/11/17 15:37, Florian Bruhin wrote:
> Hi,
> 
> On Mon, Nov 20, 2017 at 08:20:19AM +1000, Phil wrote:
>> This seems to be the equivalent but nothing is printed.
>>
>> while (self.serial.waitForReadyRead(5000)):
>>      data = self.serial.readAll()
>>      print(:data = ")
> 
> That looks about right conceptually, apart from the print() being a syntax
> error, and only showing part of the picture (how is self.serial defined)?
> 
> Can you please show a complete, working, minimal example script with PySerial
> which works, and one with QSerialPort which does not?

Thank you Florian for you reply.

The pyserial and QSerialPort code supplied was an example of what worked 
and what didn't.

Anyway, after a good night's sleep and a bit of experimentation I now 
have a working solution as follows:

         if self.serial.canReadLine():
             data = self.serial.readLine()
             print(data)

I'm not sure what happens, at the moment, if there isn't and serial date 
to read

One thing I haven't sorted out is how to convert a QBytearray, "data" in 
this case, to a string. The following converts the mytext QString to a 
byte array but I cannot see how to convert a byte array to a string.

byte = bytes(mytext, encoding='ascii')

I want to write "data" into a text edit box like this:

self.textEdit.append(data_converted_string)

-- 
Regards,
Phil


More information about the PyQt mailing list