目前我正在尝试在Qt中获取一个按钮来运行以下命令:adb reboot
。我在MAC上,当我在控制台中运行此命令时,它会重新启动通过Android
连接到我的计算机的USB
设备。我在线阅读了论坛,但无法解决这个问题。以下是尝试在Qt中调用adb reboot
时的一些尝试:
void MainWindow::on_pushButton_clicked()
{
QProcess::startDetached("/bin/bash", QStringList()<< "-c" << "export PATH=${PATH}:/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platform-tools/");
QProcess::startDetached("/bin/bash", QStringList()<< "-c" << "adb reboot");
QProcess::startDetached("/bin/sh", QStringList()<< "-c" << "adb reboot");
QProcess::startDetached("/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platform-tools/", QStringList()<< "-c" << "adb reboot");
}
当我点击按钮时,这是我的控制台的输出:
Starting /Users/ddelorenzo/Documents/QaGUI/QaGUI/QaGUI.app/Contents/MacOS/QaGUI..
/bin/bash: adb: command not found
/bin/sh: adb: command not found
任何帮助将不胜感激!
答案 0 :(得分:0)
最简单的方法是使用this method:
bool QProcess :: startDetached(const QString&amp; command)[静态]
这是一个重载功能。
在新进程中启动命令命令,并从中分离。成功时返回true;否则返回false。
参数处理与相应的start()重载相同。
在拆分和取消引用命令字符串之后,此函数的行为类似于将参数作为字符串列表的重载。
因此,我会写这样的东西:
if (!QProcess::startDetached("/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platform-tools/adb reboot"))
qDebug() << "Failed to execute";