问题标签 [qprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3869 浏览

linux - 终止在 QThread 中运行的正在进行的 QProcess?

如何终止在 QThread 中运行并被另一个 QThread 删除的正在进行的 QProcess?我什至插入了一个 QMutex extCmdProcessLock,它应该避免在 extCmdProcess 完成或超时之前破坏 DbManager。如果另一个线程在 DbManager 上调用 delete,我会在“waitForStarted”上遇到分段错误。我不能使用信号(我认为),因为我在顺序数据过程中使用外部命令。非常感谢您的帮助!

附录 A:我还收到错误“QProcess: Destroyed while process is still running”。我读到这可能意味着我的另一个线程的“删除 dbmanager”调用在 waitForStarted() 命令尚未完成时执行。但我真的很想知道为什么我的析构函数中的 kill() 命令没有解决这个问题。

附录 B:根据评论,添加waitForFinished(). 可悲的是,QProcess 终止仍然没有正确关闭,分段错误本身发生在waitForStarted()或如下所示start()

附录 C:调试输出向我展示了错误消息:QProcess: Destroyed while process is still running。总是出现,当出现完成失败的输出时。这意味着我保护 QProcess 的锁定或/和终止尝试失败。我想知道的问题:

a)如果创建一个 QProcess 对象并启动它,我的extCmdProcessLock解锁了吗?我已经尝试使用普通lock()电话而不是QMutexLoader但没有运气。

b)文档说如果我以这种方式使用 QProcess ,主线程将被停止。它们真的是指主线程还是启动 QProcess 的线程?我假设第二个。

c) QProcess 不能在多线程环境中使用吗?如果两个线程创建一个 QProcess 对象并运行它,它们会干扰吗?也许对象是静态的?

感谢您在填补知识泄漏方面的任何帮助。我真的希望能解决这个难题。

附录 D:从任何线程中删除任何 delete 和 deleteLater() 后,我的 QProcess 仍然被破坏。

0 投票
1 回答
2247 浏览

multithreading - QProcess 错误状态 5 的原因是什么?

我有多个线程运行以下 QProcess。它们随机失败,错误状态为 5。Qt 文档没有提供更多详细信息。有谁知道该错误可能来自什么?非常感谢你。

给我输出:

0 投票
1 回答
658 浏览

qt - QProcess exits before complete

I've got some code that starts mencoder in a QProcess, converts a video while displaying a progress bar, then exits. The problem is, mencoder always exits before it's actually finished. The loop runs through a few times, and then closes. If I comment out the line that updates the progress bar (progress.setValue()), mencoder runs to completion and exits happily.

Been at this for a day, and can't figure it out! Also, I should mention I'm on a Mac.

Any ideas?

Thanks

Marlon

0 投票
1 回答
1768 浏览

qt - 从 QThread 启动 QProcess

我在 Qt 中使用 QThreads,我需要从 Qt 线程中启动命令行可执行文件并在线程的上下文中运行它。

我已经使用了下面提到的代码,它似乎运行良好。但是,我想知道是否允许这种用法,因为我们是从 QThread 中启动 QProcess。

等待你的回复。

问候,

索拉布·G。

0 投票
2 回答
2255 浏览

qt - 如何在不冻结 gui 的情况下运行 QProcess 的同步链?

我想在一些外部程序的帮助下优化图像。程序必须一个接一个地执行,其中一些取决于最后一个程序的输出,其中一些取决于图像的特性。

我知道,我可以使用信号,但这在这里不是很有用,因为我必须为每个外部程序使用几十个函数和信号,其中一些甚至多次取决于调用程序的位置在链中。一个一个地执行它们会容易得多。但是,如果我这样做,即使在所有进程完成之前不显示状态消息,gui 也会立即冻结。我还可以做些什么?

0 投票
1 回答
2145 浏览

qt - QProcess 从标准输入和标准输出的文件开始

我需要从 QProcess 运行以下语句:

在 QT 中:

但不知何故,它不起作用。我在任务管理器中看到,该命令看起来正确,但似乎是在没有任何参数的情况下执行程序。我的错误在哪里?

0 投票
3 回答
796 浏览

qt - 如何调用需要来自 QtGui 的标准输入的应用程序?

我正在使用 Ubuntu 和 Qt Creator 4

我有一个可执行形式的 .cpp 程序(比如abc.out),我希望在按下按钮时运行它。它包含许多 cin 和 cout,所以我希望它在“终端”(在 Ubuntu 上)上运行,以便我能够向它输入和输出值。我怎样才能做到这一点?

我试过 system() 和 QProcess p1; p1.start(./abc.out);

使用 QProcess,我的可执行文件运行但在第一个 cout 处停止。它在 Qt Creator 的应用程序输出屏幕上运行,而不是在终端上。

例如:我在应用程序输出中看到:

输入名字:

当我在此处键入值并按 Enter 键时,它不接受该值,而是移至下一行并允许我进一步键入。我想abc.out在终端上运行这个文件。任何想法都会非常有帮助。

0 投票
2 回答
2502 浏览

linux - 如何在 QProcess 上强制优先级

我没有看到任何 APIQProcess在 Qt 文档中设置 a 的优先级。我假设该过程以正常优先级启动。

有没有办法在 Linux 上以较低的优先级启动进程?

0 投票
1 回答
627 浏览

qt - QProcess:使进程独立和Windows问题

好吧,我有一个 QProcess 作为我的程序更新程序,但是在 Windows 上,当它们运行时你不能修改 exe 文件,但是如果你关闭创建更新程序进程的程序,我想更新程序也会关闭。可以使更新程序进程独立吗?

然后,在 Windows Vista(及更高版本)上,无法运行我的更新程序,因为它返回我需要将我的级别提升为管理员,是否可以提升进程的权限?

0 投票
1 回答
1902 浏览

qt - 具有管理员权限的 QProcess

我想使用 QProcess 从 .sh 文件运行 shell 脚本。我遇到的问题是用户权限。如何提示用户输入管理员的用户名和密码,以获得正确的权限来使用 .sh 文件?

我希望有一个看起来像这样的提示: 在此处输入图像描述

谢谢