Как очистить экран в консоли QT?

Мне нужна чистая консоль QT. Что за команда?

основной.cpp:

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

person punksta    schedule 17.11.2013    source источник
comment
Чтобы очистить консоль, используйте system("CLS"). Что такое QT console?   -  person Ramchandra Apte    schedule 17.11.2013
comment
Извини. Я не знал какая система (CLS) работает с библиотекой QT   -  person punksta    schedule 17.11.2013


Ответы (3)


Вы можете выполнить:

QProcess::execute("CLS");

Это, конечно, будет работать только в Windows. В системах Linux/Unix вам нужно будет сделать:

QProcess::execute("clear");

Если все, что вам нужно сделать, это очистить экран, эти вещи будут работать. Однако, если вы пытаетесь создать более сложный текстовый интерфейс (где определенные строки фиксированы, или если вы хотите нарисовать индикаторы выполнения и т.п.), вам понадобится что-то более сложное.

person ksimons    schedule 17.11.2013
comment
QProcess::execute("CLS"); всегда возвращает -2 на моем компьютере с Windows 10. Неважно, запускал из ide или из шелла. Однако сама команда работает при вызове в обычном cmd или PowerShell окне. Вы уверены, что ваша команда работает в окне консоли QCoreApplication? - person darkmattercoder; 19.11.2018

В Windows следует использовать

QProcess::execute("cmd /c cls");

Потому что обычный cls, кажется, не работает в приложении.

В Linux, как указано выше

QProcess::execute("clear");

должно сработать.

person darkmattercoder    schedule 19.11.2018

Другие ответы проблематичны из-за введения условий гонки.

Это будет работать лучше: (Проверено на Ubuntu. Windows, я не знаю.)

printf("\033[2J"); // Clear Screen
printf("\033[3J"); // Clear Scrollback
person Anon    schedule 07.12.2018