【发布时间】:2020-01-30 15:04:43
【问题描述】:
我正在开发一个用 qt5 编写的程序,我需要在其中安装一些设备(USB 驱动器)并在 GUI 中显示该设备的内容。 我正在使用 QProcess() 来安装设备,然后我探索应该安装设备的文件夹。不幸的是,只能找到几个文件。
我尝试在 mount 命令之后添加一个 QThread::sleep() ,这实际上适用于小型设备。因此,我的方法的正确性似乎取决于我等待系统实际安装设备的时间。
pr3.start("mount foo foo");
pr3.waitForFinished(-1);
QThread::sleep(6); //This is a patch but it fail depending on the amount of file stored in the device
有什么方法可以确定 QProcess("mount") 何时正确完成? 我尝试了 QProcess 的 wawtforfinished(-1) 方法,但它没有 似乎工作。
谢谢
【问题讨论】:
-
在任何情况下都需要做的一件事是检查已运行的挂载命令的返回码。挂载是否成功退出,也就是说返回码是什么?
-
嗨,我试图将进程连接到完成信号...事实是该信号是即时调用的,而不是在文件正确安装时调用。我认为这就像在linux中一样。 “mount”命令会自动返回控制台。即使您需要一个“同步”命令来使一切正常。我试图用同步来做另一个过程,但没用
-
@Talkanian,我认为您还必须为该过程创建 参数列表 并将
foo和foo连接为参数 .. 或 .. 输入您的挂载命令在您作为QProcess调用的脚本中使用参数,无论哪种方式,将单个命令作为QProcess.. 传递,参数作为参数列表。
标签: c++ linux qt command mount