Я пытаюсь установить QString для Qprocess для его выполнения в Qt. Моя проблема в том, что я не могу заставить ее работать, хотя она кажется прекрасной из QProcess Documentation. Я хотел сделать это в кнопочной прессе, так что мой код посмотрел на первую, как следующие (пальцы вверх, процесс является ROS Command):установить qstring на qprocess правильно
void Viatic_Interface::gazebo_launch_world()
{
QString program = "roslaunch";
QStringList arguments;
arguments << " wifibot_gazebo " << ui->txt_world->text();
QProcess *myProcess = new QProcess();
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
myProcess->setProcessEnvironment(env);
myProcess->start(program, arguments);
myProcess->waitForStarted(-1);
}
и это не сработало. Похоже, sth собирается получить QString из LineEdit. Просто, чтобы проверить, если моя команда работает, я попытался установить команду в качестве одной команды, и она работала:
void Viatic_Interface::gazebo_launch_world()
{
QString program = "roslaunch wifibot_gazebo wifibot_gazebo.launch";
QProcess *myProcess = new QProcess();
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
myProcess->setProcessEnvironment(env);
myProcess->start(program);
myProcess->waitForStarted(-1);
}
Я пропускаю что-то ??
Try без хвостовых пробелов в '» wifibot_gazebo «', то есть с '„wifibot_gazebo“'. При передаче QStringList, аргументы разделяются пробелами автоматически и добавить больше пространства для аргументов приводит к процитировать –
Попробуйте с полным файловым дорожкой программы «roslaunch» – Felix
привет, @Frank я пробовал без пробелов как «wifibot_gazebo», и это тоже не сработало. Феликс, даже без пути «roslaunch», ', он работал для второго кода, поэтому я не думаю, что это проблема пути. Thx – Vtik