You need two separate methods: one to get the file name the first time, and another that you use with the QTimer to autosave. When you start the program, the "save file" name is blank. You start the timer, the timeout slot looks at the name and see that it is empty, so it calls the method to get the file name from the user. It then saves the name in a member variable. Then, each time the timeout occurs, it sees that the filename is not blank and uses that name to save instead of asking for a new one.