14

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

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

是否可以将 Qt Creator 配置为在我开始构建或再次运行 QApplication 时关闭它?

4

5 回答 5

22

在 Qt Creator 中有一个选项可以做到这一点:

  1. 打开首选项 => 构建和运行 => 常规
  2. 将“在构建之前停止应用程序”从“无”更改为“相同项目”</li>
于 2016-06-02T10:51:55.717 回答
6

对于以后可能会在这里绊倒的人来说,一个更简单的方法是在 Projects(ctrl+5) -> Build and Run 下放置一个“killall”命令(如 tangbongbong 所建议的)是第一个构建步骤

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

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

于 2014-05-07T14:03:28.883 回答
5

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

在此处输入图像描述

于 2014-07-17T10:18:11.383 回答
2

我在 Windows 上,所以killall不起作用。但我想通了(以 Julien 作为屏幕截图发布的相同形式输入值):

命令:taskkill

论据:/FI "STATUS eq Running" /IM APPNAME.exe /F

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

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

于 2015-12-24T14:14:31.623 回答
1

是的。

一种方法是创建一个非常简单的脚本,该脚本会终止您现有的正在运行的进程并启动一个新进程。如果您的程序可执行文件FooBarProgram然后转到 Qt 创建的构建目录并创建此文件FooBarProgramLauncher

#!/bin/bash

killall FooBarProgram
./FooBarProgram

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

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

现在,每当您告诉 Qt 运行您的程序时,它都会运行FooBarProgramLauncher,这反过来会杀死任何正在运行的实例,FooBarProgram然后运行新编译的可执行文件。

于 2013-02-28T05:10:47.893 回答