Can you configure Qt Creator to kill the running application before building or running?

前端 未结 5 442
耶瑟儿~
耶瑟儿~ 2021-02-04 08:47

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

相关标签:
5条回答
  • 2021-02-04 08:59

    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.

    0 讨论(0)
  • 2021-02-04 09:04

    Try to add the following Custom Process Step at the top of the Build Steps

    enter image description here

    0 讨论(0)
  • 2021-02-04 09:18

    There is an option to do that in Qt Creator:

    1. Open the Preferences => Build & Run => General
    2. Change “Stop application before building” from “None” to “Same Project”
    0 讨论(0)
  • 2021-02-04 09:25

    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

    0 讨论(0)
  • 2021-02-04 09:25

    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:

    1. Open the project in Qt Creator
    2. Select "Projects" from the pane on the left
    3. Select the "Build & Run" tab if not already selected
    4. Select the "Run" subtab
    5. Under the "Run" heading, click the "Add" button, select "Custom Executable"
    6. On the "Command" line, click the "Browse" button and select 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.

    0 讨论(0)
提交回复
热议问题