问题标签 [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.
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 仍然被破坏。
multithreading - QProcess 错误状态 5 的原因是什么?
我有多个线程运行以下 QProcess。它们随机失败,错误状态为 5。Qt 文档没有提供更多详细信息。有谁知道该错误可能来自什么?非常感谢你。
给我输出:
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
qt - 从 QThread 启动 QProcess
我在 Qt 中使用 QThreads,我需要从 Qt 线程中启动命令行可执行文件并在线程的上下文中运行它。
我已经使用了下面提到的代码,它似乎运行良好。但是,我想知道是否允许这种用法,因为我们是从 QThread 中启动 QProcess。
等待你的回复。
问候,
索拉布·G。
qt - 如何在不冻结 gui 的情况下运行 QProcess 的同步链?
我想在一些外部程序的帮助下优化图像。程序必须一个接一个地执行,其中一些取决于最后一个程序的输出,其中一些取决于图像的特性。
我知道,我可以使用信号,但这在这里不是很有用,因为我必须为每个外部程序使用几十个函数和信号,其中一些甚至多次取决于调用程序的位置在链中。一个一个地执行它们会容易得多。但是,如果我这样做,即使在所有进程完成之前不显示状态消息,gui 也会立即冻结。我还可以做些什么?
qt - QProcess 从标准输入和标准输出的文件开始
我需要从 QProcess 运行以下语句:
在 QT 中:
但不知何故,它不起作用。我在任务管理器中看到,该命令看起来正确,但似乎是在没有任何参数的情况下执行程序。我的错误在哪里?
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
在终端上运行这个文件。任何想法都会非常有帮助。
linux - 如何在 QProcess 上强制优先级
我没有看到任何 APIQProcess
在 Qt 文档中设置 a 的优先级。我假设该过程以正常优先级启动。
有没有办法在 Linux 上以较低的优先级启动进程?
qt - QProcess:使进程独立和Windows问题
好吧,我有一个 QProcess 作为我的程序更新程序,但是在 Windows 上,当它们运行时你不能修改 exe 文件,但是如果你关闭创建更新程序进程的程序,我想更新程序也会关闭。可以使更新程序进程独立吗?
然后,在 Windows Vista(及更高版本)上,无法运行我的更新程序,因为它返回我需要将我的级别提升为管理员,是否可以提升进程的权限?
qt - 具有管理员权限的 QProcess
我想使用 QProcess 从 .sh 文件运行 shell 脚本。我遇到的问题是用户权限。如何提示用户输入管理员的用户名和密码,以获得正确的权限来使用 .sh 文件?
我希望有一个看起来像这样的提示:
谢谢