This is probably OS specific.
On linux, if you have a handle to an open file, and that file is removed somehow... the OS does not really remove the file until all open file handles are closed.
So your app can indead continue happily to use the file. It still does exist as the app's handle keeps it alive. New commands like "ls" will not show the file, as they do not have an open handle...

If you want to make sure the that a file has not been "removed" (from the directory), you have to either check (e.g.) with QFile::exists() or you might wish to watch it with QFileSystemWatcher.

The more efficient way would be to use QFilesystemWatcher.
HTH