The temporary object gets destroyed immediately after the statement it was created in is finished.

If the std::strnig object is valid Qt has nothing more to do with it. Are you by any chance using VS6 to compile your project?