@crisp
Yes, I think using the threaded version of the IRC library is the easiest solution for you.

@wysota
This topic already came up once and we didn't quite finish it. I don't understand your aversion against threads. With any approach based on the processEvents() call you take away the control from the Qt framework and provide your own mechanism to process the gui events with your own pace. With a timer based approach you can at least return the event handler immidiately, but still you set your own pace to step a process forward. With a seperate thread however the optimized mechanisms of the operating system will take care of driving your process. In the case of crisp for example the seperate thread can wait in a blocking recvfrom() call and use no resources at all. New data will be handled exactly when they arrived and not too early or too late as it's usually the case with a timer based approach. Parallel processes also lead to a better utilization of multicore cpus, which are becoming the standard as of now.