繁体   English   中英

QProcess :: execute(“清除”)问题

[英]QProcess::execute(“clear”) Issue

我正在Qt中编写一个小型控制台应用程序,并且希望能够通过用户命令清除终端。 我找到了这个:

QT控制台的屏幕如何清晰?

几乎可以回答我的问题,但无法正常工作。

当函数“ 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;
}

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

生成并运行

qmake && make && ./main

请注意,如果您使用的是QtCreator,则需要在构建设置选项卡中显式添加环境变量及其值。 您可以在文档中找到更多详细信息:

QtCreator-使用环境变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM