Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывод в кольсоль в ту же строку
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
NordWest
Как вот сделать, чтобы выводить в консоль, по qDebug например, не в новую строчку, а взамен предыдущей. Т.е. процент выполнения процесса в частности. Чтобы не куча строк писалась, а одна. В которой меняется число. Давно хотел узнать.
Litkevich Yuriy
нужно вместо конца строки (перевод строки+возврат каретки) делать только возврат каретки - "\r".
пример:
QTextStream out(stdout);

out << trUtf8("Копирование:\n");
double current = 0;
foreach(QString sFileName, all){
    ++current;
    out << "Complete: "
        << ( (current * 100)/cnt) << qSetRealNumberPrecision(3)
        << "%    \r" << flush;
    
    // Делаем полезную работу
}
out << reset << endl << flush;
здесь qSetRealNumberPrecision(3) задаёт формат вывода в консоль (стандартный поток вывода), а reset - сбрасывает в исходное состояние настройки потока.

Т.к. qDebug() всегда делает "конец строки", то прийдётся глобально для всего приложения переопределять работу обработчиков qDebug(), qFatal(),...
(см. тут)
NordWest
Так просто, а какое счастье! Спасибо огромное за ликбез! :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.