how to capture log data in QTextEdit

Giuseppe Corbelli corbelligiuseppe at mesdan.it
Tue Feb 23 08:45:02 GMT 2021


On 2/22/21 5:18 PM, Stefan Seefeld wrote:
>>> I'm trying to capture ("redirect") log data generated by a wrapped C++
>>> library to a QTextEdit. The internet is full of related questions, but I
>>> couldn't quite find a working example that matches my needs. I can configure
>>> my logger to either write to the console (stdout) or to a file, so what I'm
>>> looking for is a mechanism to attach a "listener" to the given file
>>> descriptor and let it emit a `readyRead` signal whenever data are available.
>>> For a reason I don't entirely understand, the `QFile` class does *not* emit
>>> that signal, and thus is unfortunately unsuitable for this.
>> I'm not sure why either, but FWIW that behavior is documented as well:
>> https://doc.qt.io/qt-5/qfile.html#signals
> 
> Indeed, I found that as well.
> 
>>> So, does PyQt5 offer any classes that are equipped to listen to data being
>>> written to a file descriptor such that I could read them asynchronously ?
>>> The only examples I could find involve (tcp or udp) sockets or serial ports,
>>> but not simple files...
>> Despite the name, QSocketNotifier might work:
>> https://doc.qt.io/qt-5/qsocketnotifier.html
>> ("Although the class is called QSocketNotifier, it is normally used for
>> other types of devices than sockets")
> 
> Thanks ! Yes, I found that solution as well, and was able to apply that 
> to my case to make things work.

I don't think that it will work on windows. Maybe not a concern...

-- 
Giuseppe Corbelli


More information about the PyQt mailing list