qtcreator 在“停止”时发送的信号

2024-01-07

我正在 Linux 上工作,当我使用 Qt 创建者 IDE 上的“停止”按钮关闭应用程序时,我意识到我的应用程序留下了守护进程。我想处理这些情况,以便应用程序以与关闭主窗口相同的方式关闭。要编写处理程序,我需要知道它对应于哪些信号。


深入研究 QtCreator 的代码,我可以看到 QtCreator 在内部使用 QProcess 来启动您的应用程序。红色“停止”按钮连接到ApplicationLauncher::stop(),它以两种方式之一终止您的进程,具体取决于它是 GUI 应用程序还是控制台应用程序,但在这两种情况下,结果在 Linux 上最终是相同的。

对于 GUI 应用程序,ApplicationLauncher calls QProcess::terminate(),它又向您的守护进程发送 SIGTERM(在 Linux 上)信号。然后它等待(与waitForFinished()) 1 秒,如果守护进程此时还没有退出,它会调用QProcess::kill(), 发送SIGKILL.

对于控制台应用程序,ApplicationLauncher将终止委托给ConsoleProcess实用类。在 Linux 上,ConsoleProcess::stop()将表现类似于ApplicationLauncher对于 GUI 应用程序,首先发送SIGTERM,然后等待1秒,发送SIGKILL如果它还没有终止。

您可以在此处找到 QtCreator 的相关代码:

  • GUI 应用程序终止 http://qt.gitorious.org/qt-creator/qt-creator/blobs/2.6/src/plugins/projectexplorer/applicationlauncher.cpp#line173
  • 控制台应用程序终止(在 Linux 上) http://qt.gitorious.org/qt-creator/qt-creator/blobs/2.6/src/libs/utils/consoleprocess_unix.cpp#line163
  • 控制台应用程序终止(在 Windows 上) http://qt.gitorious.org/qt-creator/qt-creator/blobs/2.6/src/libs/utils/consoleprocess_win.cpp#line158
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qtcreator 在“停止”时发送的信号 的相关文章

  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 使用 C++ 访问 Azure blob 存储 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么动态 qml 对象的创建如此缓慢,有哪些合理的替代方案?

    我想要实现的目标类似于棋盘游戏 有一个100 100的网格 放在一个Item它驻留在一个Flickable 游戏板 的各个矩形都是 svg 图像 目前大约有 20 种 可能会增加到数百种 作为基准测试 我只是尝试用元素填充 世界 Compo
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 相对文件路径的区别:Qt Creator的调试模式和发布模式

    QFile file test txt if file open QIODevice ReadOnly qDebug lt lt You got me 我在用 Qt 4 8 6 与 MSVC 2010 Qt 创建者 3 1 1 Window
  • 一个具有完全透明背景的qt小部件

    我需要创建一个 qt 小部件 它将充当其他一些小部件的父级 并对它们进行排序 现在的问题是如何使其背景完全透明 我想这样做 struct Imp Imp QWidget parent thisWidget new QWidget paren
  • 如何在不声明 32 个插槽的情况下将 32 个按钮的 pressed() 信号连接到单个函数?

    我有一个小部件 里面有 32 个按钮 我需要将每个按钮的 Pressed 信号连接到一个插槽 以便调用一个函数 该函数的参数取决于我按下的按钮 现在我通过以 on QPushButtonName pressed 的形式添加 32 个插槽来做
  • 为按钮控件 Qt Widgets 样式表定义多种样式

    如何在一个样式表中为一种控件定义多种样式 这样以后开发人员就可以选择控件应该是什么样子的样式 例如 我需要定义两种样式QPushButton 用于普通按钮 左侧 和操作按钮 右侧 对于第一个按钮 我编写了以下样式 QPushButton b
  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • 当选项卡到另一个组件位置时,QML 中相应的滚动

    我想做的是 如果我从TextField到另一个组件 aComboBoxwtv 我希望滚动能够适应这一点 当我认为这非常重要时 当我执行连续选项卡时 我会转到滚动视图显示的内容下方的控件 一个例子是 假设我在这里 now i do 2 tab
  • QML 圆规

    我目前正在创建一个虚拟仪表板 我想获得针后面的进度条类型 如以下链接所示 https forum qt io topic 89307 qml circular gauge styling needle trailing colour glo
  • 如何wget目录中最新的文件

    我想编写一个 bash 脚本来下载并安装最新的每日构建程序 RStudio 是否有可能使wget仅下载目录中最新的文件http www rstudio org download daily desktop http www rstudio
  • 如何安装 C++ 的 VOCE?

    我正在尝试安装 VOCE api 它是为 C 和 Java 构建的语音识别 API 这是我第二次使用外部 C 库 也是第一次使用 Java C api 语音链接 http voce sourceforge net http voce sou
  • 来源和出口有什么区别?

    我正在编写一个 shell 脚本 以读取具有 key value 对的文件并将这些变量设置为环境变量 但我有疑问 如果我这样做source file txt是否会将该文件中定义的变量设置为环境变量 或者我应该逐行读取文件并使用导出命令设置它
  • 使用awk将列中的值替换为txt文件中的另一个值

    我是 Linux 和 awk 脚本编写的新手 我有 tab delim txt 文件 如下所示 AAA 134 145 Sat 150 167 AAA 156 167 Sat 150 167 AAA 175 187 Sat 150 167
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现

随机推荐

  • DUnit:如何运行测试?

    我怎么跑TestCase来自 IDE 我创建了一个新项目 具有单一 简单的形式 unit Unit1 interface uses Windows Messages SysUtils Classes Graphics Controls Fo
  • 将rules.csv文件导入声纳

    我有一个 ms excel 格式的文件rules csv Rules csv 是从其他声纳服务器的质量配置文件下载的 现在我想以相同的质量配置文件实现我的声纳 现在我的问题是 如何将csv文件导入声纳 rules csv 文件足以创建与其他
  • SSRS 对多个数据集和子报告的值求和

    我的 SSRS 主报告中有两个数据集和一个子报告 我需要创建第三个 总计表或矩阵 从每个数据集和子报告中返回一个字段 它看起来像这样 开始 首先 我构建了一个表并添加了一列以使用以下值进行测试 这是在总计行中 每个元素单独位于各自的行中 R
  • PLinq 本质上比 System.Threading.Tasks.Parallel.ForEach 更快

    Summary 我从 System Threading Tasks Parallel ForEach 和并发数据结构更改为简单的 plinq 并行 Linq 查询 速度是amazing 那么 plinq 本质上比 Parallel ForE
  • 我在哪里可以找到(并运行)使用 cabal 沙箱编译的可执行文件?

    我正在编译我的myProgram lhs使用阴谋集团沙箱 设置为cabal sandbox init 我正在使用我想出的最简单的方法 cabal exec ghc myProgram 或者 有一个规则Makefile cabal exec
  • libgdx 游戏无法在 Android 手机上运行

    我正在尝试从这个基于 libgdx 的游戏构建 Android 游戏 但是当将我下载的 libgdx 代码移植到 Android 游戏时 Android 应用程序会崩溃http rengelbert com blog downloads f
  • Java套接字不会在死套接字上抛出异常?

    我们的移动设备和服务器之间有一个简单的客户端服务器架构 两者都是用 Java 编写的 一个极其简单的ServerSocket和Socket实现 然而一个问题是 当客户端突然终止 没有正确关闭套接字 时 服务器不知道它已断开连接 此外 服务器
  • 大方形 WordPress 帖子缩略图

    有人知道如何获得方形的 WordPress 缩略图吗 如果我使用这个图像不是方形的 但如果我这样做 它们是正方形的 我需要创建一个缩略图库 其中包含 300 x 300 的方形图像 您必须首先创建自己的图片尺寸 这是通过添加图像大小 htt
  • 当激活默认拒绝时,Spring Security ROLE_ANONYMOUS 不起作用

    我启用了安全性的默认拒绝功能 有了这个 我想在某些控制器上提供匿名访问 为此 我启用了匿名身份验证 如果我使用antmacher permitAll 工作正常 但如果我正在使用 PreAuthorize value hasRole ROLE
  • 如何在 CALayer 上获取触摸事件?

    我是 iPhone SDK 的新手 现在我正在使用我非常喜欢的 CALayers 进行编程 不像 UIViews 那么昂贵 并且比 OpenGL ES sprites 的代码少得多 我有这个问题 是否可以在 CALayer 上获取触摸事件
  • 如何在VS 2010中禁用缩进虚线

    在每个缩进上看到这些虚线 我该如何关闭它 我一定是不小心按下了某个键盘快捷键 但我在设置中找不到它 抱歉 这是一个非常愚蠢的问题 但这些话真的让我很困扰 我不知道还能转向哪里 通过以下方式打开 关闭它 编辑 gt 高级 gt 查看空白 Th
  • Ruby 中对数组中的集合进行平均的最佳方法是什么?

    给定以下简单数据集 对 0 25 53 和 80 组的值进行平均的最佳方法是什么 0 148 5 0 146 5 0 148 6 0 202 3 25 145 7 25 145 5 25 147 4 25 147 3 53 150 4 53
  • 有哪些大型网站正在使用 Amazon EC2 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找托管在 Amazon EC2 S3 Cloudfront 等上的大型网站的示例 我在一家公司工作 我们运行一个网站 该网站每月在运行 10
  • Delphi中如何检测打印机型号?

    当我插入 HP Laserjet 3015 时 Windows 会检测到正确的型号 然后尝试安装适当的驱动程序 如何检测所连接打印机的型号 我不想使用已安装打印机的列表 因为 Zebra 打印机可以使用通用 纯文本驱动程序进行安装 我是一名
  • OAuth (Instagram) 无需刷新

    我有一个单页 JavaScript 应用程序 我想知道是否可以在不刷新页面的情况下对 Instagram 上的用户进行身份验证 我想尝试使用 javascript 执行类似于 Facebook 连接的操作 其中 Facebook 对话框在弹
  • 为什么编译器需要.java后缀而解释器不需要.class后缀?

    编译 Foo java javac Foo java 运行程序 java Foo 为什么编译器需要 java后缀但解释器不需要 class suffix 正如其他几个答案所解释的那样 Java 编译器采用文件名作为参数 而解释器采用类名 所
  • Android 操作栏向上导航按钮在设备上不起作用

    Action Bar up navigation button works fine in emulator but does not work in device can any one help me out 主要活动 Override
  • 从android中的服务调用BroadCastReceiver来更新Fragment中的UI?

    我想更新UI of a fragment from service 我在用GCM用于发送消息 我有这个课程GCM public class GcmIntentService extends IntentService public GcmI
  • 来自阻塞(具有重叠 I/O 属性)Winsock2 调用的意外 WSA_IO_PENDING

    简洁版本 使用阻塞套接字 API 调用时 我收到 WSA IO PENDING 我该如何处理 插座有重叠 I O 属性 https support microsoft com en gb help 181611 socket overlap
  • qtcreator 在“停止”时发送的信号

    我正在 Linux 上工作 当我使用 Qt 创建者 IDE 上的 停止 按钮关闭应用程序时 我意识到我的应用程序留下了守护进程 我想处理这些情况 以便应用程序以与关闭主窗口相同的方式关闭 要编写处理程序 我需要知道它对应于哪些信号 深入研究