我正在Qt中编写一个小型控制台应用程序,我希望能够通过用户命令清除终端。我发现了这个:
How clear screen in QT console?
几乎回答了我的问题,但它没有用。
当函数“QProcess :: execute(”clear“);”运行,我把这个输出到终端:
未设置TERM环境变量。
我对Linux很陌生,虽然我以前设置了环境变量,但在运行程序之前它总是在终端中。在这里,如果可能的话,我想以编程方式处理这个问题。
我的猜测是我可以使用QProcess :: setProcessEnvironment(),但我不确定究竟是怎么回事。
是否可以用这种方式设置环境变量,如果是这样的话?
非常感谢任何帮助!
以下是我正在使用的示例代码:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream qin(stdin);
QTextStream qout(stdout);
QString cmd;
while(1)
{
cmd = qin.readLine();
qout<<"command is: "<<cmd<<endl;
if(cmd == "clear")
{
QProcess::execute("clear");
}
}
return a.exec();
}
答案 0 :(得分:1)
下面的代码对我来说很好。请确保clear命令在控制台中正常工作。
#include <QProcess>
#include <QDebug>
int main()
{
QProcess::execute("clear");
qDebug() << QProcessEnvironment::systemEnvironment().contains("TERM");
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
请注意,如果您使用的是QtCreator,则需要在构建设置选项卡中显式添加环境变量及其值。在这里,您可以在文档中找到更多详细信息: