I\'m developing a QApplication and I find that I often forget to close my application before rebuilding and re-running it. This becomes a problem when I accidentally look at an
I am on Windows so the killall
does not work.
But I figured this out (enter the values in the same form that Julien has posted as a screenshot):
Command: taskkill
Arguments: /FI "STATUS eq Running" /IM APPNAME.exe /F
You need to replace APPNAME
with your application's name, of course.
The /FI "STATUS eq Running"
is a filter that enables qmake to proceed after this pre-build-step, even if the application is not yet running (else it would not find the process to kill and then exit). Without the /F
the application won't get closed, at least for me.
However, if your application has a icon in the trayarea, the icon won't disappear. The icon gets removed when you move the mouse over it.
Try to add the following Custom Process Step at the top of the Build Steps
There is an option to do that in Qt Creator:
To whomever might stumble here later, an easier way to o this is to put a "killall" command (as suggested by tangbongbong) is the first build step under Projects(ctrl+5) -> Build and Run
In the screenshot below my executable name was "Tutano" and I added the -9 option to ensure it would be killed.
Screenshot - sorry, I'm new here so can't post an image directly
Yes.
One way is to create a very simple script that kills your existing running process and starts a new one. If your program executable is FooBarProgram
then go to the build directory that Qt has created and create this file FooBarProgramLauncher
#!/bin/bash
killall FooBarProgram
./FooBarProgram
Now change the Qt project configuration to run your launcher instead running your program directly:
FooBarProgramLauncher
Now whenever you tell Qt to run your program it will run FooBarProgramLauncher
instead which in turn will kill any running instances of FooBarProgram
and then run the newly compiled executable.