Qt/C++:用按钮任意中断QProcess(模拟^C)
Qt/C++: interrupt QProcess arbitrarily with button (simulate ^c)
因此,我需要制作一个Qt应用程序(带有GUI)来执行"adb-logcat"命令(这是一个一直生成的日志,直到按下^c为止)。我需要一个GUI按钮来停止进程并将输出传递给文本浏览器。这是我用来获得QProcess输出的代码:
QProcess process;
process.start("adb logcat");
process.waitForFinished(-1);
QByteArray logcatOut = process.readAllStandardOutput();
ui->devicesOutput->setText(logcatOut);
感谢
process.waitForFinished(-1);
将阻止您的程序被进一步执行,直到进程"adb"完成。因此,您的GUI将被冻结。
-
您应该将QProcess进程定义为类变量。使用QProcess*过程;而不是在堆栈上创建它。(所有QObject衍生物的最佳实践)
-
声明一个插槽,用于处理按钮的点击信号。
-
调用插槽中的process->terminate()。
使用QProcess::terminate停止运行应用
相关文章:
- 如何使用Google Mock来模拟gettimeofday()
- G锁定铸造到基础上会释放模拟行为
- 使用QProcess执行命令,并将结果存储在QStringList中
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 落砂模拟碰撞检测C++和SFML
- 在gtest.中使用fff.h模拟系统API
- 谷歌模拟和覆盖关键字
- 用C#中的并集模拟C++嵌套结构
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- 在模拟器中使用并集来模拟CPU寄存器有多合适
- 我写了一个C++程序来模拟Enigma机器.我没有得到输出
- 终止 QProcess 不会终止子进程
- 在 Qt(C++) 中使用 QProcess 解压缩 - 提取目录问题
- 如何模拟不同边数的骰子滚动?
- 模拟持久按键
- 使用SIR模型的疾病爆发模拟
- 在 c++ 中模拟输入并在 JAVA 中读取它?
- 转发变量参数列表以模拟 std::thread
- 当QProcess需要用户使用Qt输入时,如何阅读
- Qt/C++:用按钮任意中断QProcess(模拟^C)