我正在开发一个c ++程序,我需要通过调用QT创建的可执行文件来获取图像路径的字符串值,其名称如(/home/pi/downloads/.jpg) -4.8.7浏览图像并选择它。
在QT中开发GUI时,我试图通过使用tostdString()函数将其转换为标准字符串来从Qstring返回字符串值。执行此QT程序时没有错误。为了检查目的,我创建了一个标签来查看Qstring变量的结果字符串。它是正确的。只有我使用tostdString()函数将其转换为标准字符串并返回该字符串值。
但是当用c ++调用QT程序的可执行文件来获取图像的路径和名称时,没有响应执行。 有没有办法从Linux可执行文件或此概念的任何其他建议中获取返回字符串值?提前谢谢!
修改
std::string exec(const char* cmd)
{
char buffer[128];
std::string result = "";
FILE* pipe = popen(cmd, "r");
if (!pipe) throw std::runtime_error("popen() failed!");
try
{
while (!feof(pipe))
{
if (fgets(buffer, 128, pipe) != NULL)
result += buffer;
}
}
catch (...)
{
pclose(pipe);
throw;
}
pclose(pipe);
return result;
}
这是我在Google上搜索并尝试使用时发现的功能。 我通过以下语句在程序中调用了这个函数。
string result= exec("./Browse");
'浏览'是我为QT创建的可执行文件命名的。