Qt новичок здесь :). В настоящее время я выполняю сценарий bash в Qt, используя функцию popen
, чтобы перенаправить вывод в текстовый блок в моем приложении. Когда я добавляю сценарий к моему проекту в качестве ресурса, он больше не работает? Я использую синтаксис :/myScript.sh
, а затем попытаюсь добавить мои аргументы в QStrings. Любые советы будут оценены!Запуск сценария Bash с аргументами в качестве ресурса Qt
FILE *in;
char buff[512];
QString args = ":/myScript.sh" + <arguments>;
QByteArray ba = args.toLatin1();
char *temp = ba.data();
if(!(in = popen(temp , "r")))
{
exit(1);
}
while(fgets(buff, sizeof(buff), in)!=NULL)
{
ui->txtConsole->append(buff);
}
ui->progressBar->setValue(50); pclose(in);
Я не думаю, что это сработает, но я не могу быть уверен, не видя ваш код. Можете ли вы поделиться кодом, который вы используете, для создания всплывающего вызова, материала ':/myScript.sh' и аргументов QString? – selbie
'FILE * in; char buff [512]; QString args = ": /myScript.sh" +; QByteArray ba = args.toLatin1(); char * temp = ba.data(); if (! (In = popen (temp, "r"))) { выход (1); } while (fgets (buff, sizeof (buff), in)! = NULL) { ui-> txtConsole-> append (buff); } –
Sphics
Поскольку вы, по-видимому, в программе графического интерфейса, вам может потребоваться использовать 'QProcess' вместо' popen() 'для асинхронного запуска программы. –