在Qt程序中执行系统命令而不打开控制台窗口的方法

时间:2019-04-15 03:15:52

标签: c++ qt

我正在运行system()来移动qt中的文件。这会导致控制台窗口闪烁,是否有任何方法可以停止控制台窗口的打开和关闭(闪烁),或者system()隐藏控制台窗口的任何其他替代方法。

buffer = QString("move \"%2\\*.ico\" \"%2\\%1\" 2>nul")
                  .arg(images).arg(dir);
qPrintable(buffer);
system(qPrintable(buffer));

buffer = QString("move \"%2\\*.jpg\" \"%2\\%1\" 2>nul")
                  .arg(images).arg(dir);
system(qPrintable(buffer));
buffer = QString("move \"%2\\*.jpeg\" \"%2\\%1\" 2>nul")
                  .arg(images).arg(dir);
system(qPrintable(buffer));
buffer = QString("move \"%2\\*.png\" \"%2\\%1\" 2>nul")
                  .arg(images).arg(dir);
system(qPrintable(buffer));

%2是目录,%1是输入的文件夹名称。

1 个答案:

答案 0 :(得分:0)

一种选择是使用QProcess运行外部命令。

示例:

QString program = "move";
QStringList args;
args << QString("\"%1\\*.ico\"").arg(dir);
args << QString("\"%1\\%2\"").arg(dir).arg(images);
QProcess::execute(program, args);