Try another library, for example QSerialDevice ( https://gitorious.org/qserialdevice ).

There is a ready-made GUI test sample to work with the serial device.
An example is in the directory: /test/guiapp.
Build this example and test communication with your PIC16F877A.

PS: Why did you check the data every 100 ms? Is not it easier to hang a slot on the signal readyRead()?