waitForReadReady(timeout) may return before timeout with TRUE though there is no data available or it may return FALSE though data is available. Applies to USB-to-RS232 converters (FTDI chip), evtl. also to COM1&2, on Windows 7 64bit and MacOSx 10.8.5.
This is a more general case of https://bugreports.qt-project.org/browse/QTBUG-31918 which is already closed.
i have attached a test prog with a short howto in siotest.cpp.