2013-02-19 205 views
8

我正在开发一个QApplication,我发现我经常忘记在重建和重新运行它之前关闭我的应用程序。当我不小心查看10分钟前构建的应用程序实例并期望从30秒前看到代码更改时,这会成为问题。您可以配置Qt Creator在构建或运行之前终止正在运行的应用程序吗?

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

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

回答

12

还有就是要做到这一点Qt Creator中的一个选项:

  1. 打开Preferences =>从“无”“建设之前,必须停止应用程序”构建&运行=>常规
  2. 更改为“同一项目“
+0

安装时默认应该是“Same Project” – Jangles 2016-07-08 19:34:52

+0

在Qt Creator 4.4.1中,这个选项是在工具>选项>构建和运行>常规中找到 – PaulrBear 2017-12-28 00:09:00

1

是的。

一种方法是创建一个非常简单的脚本来杀死您现有的运行进程并启动一个新的运行进程。如果你的程序的可执行文件是FooBarProgram然后去到Qt的创造build目录,并创建该文件FooBarProgramLauncher

#!/bin/bash 

killall FooBarProgram 
./FooBarProgram 

现在改变Qt工程配置来运行你的启动程序,而不是直接运行程序:

  1. 在Qt Creator中打开项目
  2. 从左侧窗格中选择“Projects”
  3. 如果尚未选择“Build & Run”选项卡
  4. 选择“运行”子选项卡
  5. 在“运行”标题下,点击“添加”按钮,选择“自定义可执行”
  6. 在“命令”行,单击“浏览”按钮,选择FooBarProgramLauncher

现在,只要你告诉Qt来运行你的程序将运行FooBarProgramLauncher代替这反过来将杀死任何FooBarProgram运行的实例,然后运行新编译的可执行文件。

6

给谁就给谁可能绊倒这里后,邻这是把一个“killall”命令(通过tangbongbong的建议)一个简单的方法是在项目第一生成步骤(CTRL + 5) - >生成和运行

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

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

+0

绝对是一个更好的解决方案,IMO。 – 2014-05-07 14:31:31

+2

在这个问题上反思问题2年:在Qt Creator更新(Windows上的3.6.0)后,如果我启动“运行”,我的打开的应用程序终止了...而我不想要它(我必须做一个正确的注销)。 如果你想在我的博客文章中发布[该选项的截图](http://www.deste360.com/blog/2015/12/qt-creator-apre-solo-unapplicazione/)。 我在IDE中找到一个“Build&Run”选项,但我不知道:“在构建之前停止应用程序”。 – deste 2015-12-29 10:20:20

3

尝试在构建的顶部添加以下自定义流程步骤步骤

enter image description here

+0

在Windows上使用“Command:taskkill”,“参数:/ f/t/im FooBarProgram.exe || true” – Zmey 2015-12-01 14:50:29

1

我在Windows上,所以killall不起作用。 但我想通了这一点(在相同的形式朱利安已发布的屏幕截图输入值):

命令:taskkill

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

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

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

相关问题