Don't know what else to tell you. If you still have a debuggable Qt4 version of the program, you can try stepping through the call to submitAll and see what the differences are, if any. I suspect it might be a difference at the driver level since the Qt code is the same.

I'm careful to not have the database table open in Base during testing.
You can probably open it read-only, but you are right - it shouldn't matter since PostgreSQL should allow multiple connections.