如何在QT控制台清屏?

5

我需要一个清晰的QT控制台。有什么命令?

main.cpp:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    cout<<"How delete this?";
    //system("CLS")?
    return a.exec();
}

1
要清除控制台,请使用 system("CLS")。什么是 QT console - Ramchandra Apte
抱歉,我不知道系统(“CLS”)与QT库一起工作。 - punksta
3个回答

3
您可以执行以下操作:
QProcess::execute("CLS");

这当然只适用于Windows系统。在Linux/Unix系统中,您需要执行以下操作:
QProcess::execute("clear");

如果您只需要清除屏幕,这些方法都可以使用。但是,如果您想构建更复杂的基于文本的界面(其中某些行是固定的,或者如果您想绘制一些进度指示器等),您将需要更复杂的工具。

在我的 Windows 10 机器上,无论是从 IDE 还是从 shell 启动,QProcess::execute("CLS"); 始终返回 -2。但是当在常规的 cmd 或 PowerShell 窗口中调用命令时,它本身可以正常工作。您确定您的命令在 QCoreApplication 的控制台窗口中可以正常工作吗? - darkmattercoder

1
在Windows上,应该使用:
QProcess::execute("cmd /c cls");

因为在应用程序中,普通的cls似乎无法使用。

如上文所述,在Linux上。

QProcess::execute("clear");

应该可以工作。


0

其他答案存在引入竞态条件的问题。

以下方法效果更佳:(在Ubuntu上测试过。Windows上未知。)

printf("\033[2J"); // Clear Screen
printf("\033[3J"); // Clear Scrollback

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接