我正在开发一个QApplication,我发现在重建和重新运行之前我经常忘记关闭我的应用程序。当我意外地查看10分钟前构建的应用程序实例并期望在30秒前看到代码更改时,这就成了一个问题。
这也很烦人,因为我必须将我的手一直移到鼠标上,将鼠标一直移动到正在运行的应用程序,并在每次我想重建时关闭它并且我懒惰我不想这样做。
当我开始构建或再次运行时,是否可以配置Qt Creator关闭我的QApplication?
答案 0 :(得分:15)
在Qt Creator中可以选择这样做:
答案 1 :(得分:6)
对于以后可能偶然发现的人来说,更简单的方法是将“killall”命令(由tangbongbong建议)放在Projects(ctrl + 5)下的第一个构建步骤 - >构建并运行
在下面的屏幕截图中,我的可执行文件名是“Tutano”,我添加了-9选项以确保它会被杀死。
Screenshot - 对不起,我是新来的,所以不能直接发布图片
答案 2 :(得分:4)
尝试在构建步骤
的顶部添加以下自定义流程步骤
答案 3 :(得分:1)
是
一种方法是创建一个非常简单的脚本,它可以杀死现有的运行进程并启动一个新进程。如果您的程序可执行文件是FooBarProgram
,那么转到Qt创建的构建目录并创建此文件FooBarProgramLauncher
#!/bin/bash
killall FooBarProgram
./FooBarProgram
现在更改Qt项目配置以运行启动器而不是直接运行程序:
FooBarProgramLauncher
现在每当你告诉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中有一个图标,则该图标将不会消失。将鼠标移到图标上时,图标会被移除。