gpt4 book ai didi

c++ - QProcess::execute ("clear") 问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:31 26 4
gpt4 key购买 nike

我正在用 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();
}

最佳答案

下面的代码对我来说工作正常。请先确保 clear 命令在您的控制台中正常运行。

main.cpp

#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,则需要在build设置选项卡中显式添加环境变量及其值。您可以在此处找到文档中的更多详细信息:

QtCreator - Using Environment Variables

关于c++ - QProcess::execute ("clear") 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com