在构建或运行之前,您是否可以将Qt Creator配置为终止正在运行的应用程序?

时间:2013-02-19 17:49:06

标签: qt-creator

我正在开发一个QApplication,我发现在重建和重新运行之前我经常忘记关闭我的应用程序。当我意外地查看10分钟前构建的应用程序实例并期望在30秒前看到代码更改时,这就成了一个问题。

这也很烦人,因为我必须将我的手一直移到鼠标上,将鼠标一直移动到正在运行的应用程序,并在每次我想重建时关闭它并且我懒惰我不想这样做。

当我开始构建或再次运行时,是否可以配置Qt Creator关闭我的QApplication?

5 个答案:

答案 0 :(得分:15)

在Qt Creator中可以选择这样做:

  1. 打开偏好设置=>建设与发展运行=>一般
  2. 将“建立前停止申请”从“无”更改为“同一项目”

答案 1 :(得分:6)

对于以后可能偶然发现的人来说,更简单的方法是将“killall”命令(由tangbongbong建议)放在Projects(ctrl + 5)下的第一个构建步骤 - >构建并运行

在下面的屏幕截图中,我的可执行文件名是“Tutano”,我添加了-9选项以确保它会被杀死。

Screenshot   - 对不起,我是新来的,所以不能直接发布图片

答案 2 :(得分:4)

尝试在构建步骤

的顶部添加以下自定义流程步骤

enter image description here

答案 3 :(得分:1)

一种方法是创建一个非常简单的脚本,它可以杀死现有的运行进程并启动一个新进程。如果您的程序可执行文件是FooBarProgram,那么转到Qt创建的构建目录并创建此文件FooBarProgramLauncher

#!/bin/bash

killall FooBarProgram
./FooBarProgram

现在更改Qt项目配置以运行启动器而不是直接运行程序:

  1. 在Qt Creator中打开项目
  2. 从左侧窗格中选择“项目”
  3. 如果尚未选择“构建并运行”选项卡,请选择
  4. 选择“运行”子选项卡
  5. 在“运行”标题下,单击“添加”按钮,选择“自定义可执行文件”
  6. 在“命令”行中,点击“浏览”按钮,然后选择FooBarProgramLauncher
  7. 现在每当你告诉Qt运行你的程序时,它将运行FooBarProgramLauncher,而这将反过来杀死任何正在运行的FooBarProgram实例,然后运行新编译的可执行文件。

答案 4 :(得分:1)

我在Windows上,因此killall不起作用。 但我想出了这个(以Julien发布的截图形式输入相同形式的值):

命令:taskkill

参数:/FI "STATUS eq Running" /IM APPNAME.exe /F

当然,您需要将APPNAME替换为您的应用程序名称。 /FI "STATUS eq Running"是一个过滤器,它使qmake能够在此预构建步骤之后继续,即使应用程序尚未运行(否则它将找不到要杀死然后退出的进程)。如果没有/F,应用程序将无法关闭,至少对我而言。

但是,如果您的应用程序在trayarea中有一个图标,则该图标将不会消失。将鼠标移到图标上时,图标会被移除。