Russian Qt Forum

Qt => Общие вопросы => Тема начата: admsasha от Февраль 18, 2013, 03:09



Название: Командная строка в консоле
Отправлено: admsasha от Февраль 18, 2013, 03:09
Возможно это не совсем по Qt части, но и возможно это реализуется с  его помощью проще.

В некоторых консольных приложениях совместно с выводом логов, есть подобие командной строки. Как это реализуется ?


Название: Re: Командная строка в консоле
Отправлено: kambala от Февраль 18, 2013, 03:15
если я правильно понял, то имеется в виду это:
Код
C++ (Qt)
do
{
   std::string command;
   std::cin >> command;
   ...
} while (command != "exit");


Название: Re: Командная строка в консоле
Отправлено: admsasha от Февраль 18, 2013, 07:03
если я правильно понял, то имеется в виду это:
Код
C++ (Qt)
do
{
   std::string command;
   std::cin >> command;
   ...
} while (command != "exit");

sin будет ждать ввода сколько угодно времени. А лог должен идти не зависимо от этого. Например каждую секунду писать "Прошла 1 секунда"


Название: Re: Командная строка в консоле
Отправлено: Kurles от Февраль 18, 2013, 07:25
отдельный поток используй для лога или ожидания ввода


Название: Re: Командная строка в консоле
Отправлено: admsasha от Февраль 18, 2013, 07:39
не решает проблему.
std::cout будет выводить строку на последнюю линию консольного окна, а не на предпоследнюю.


Название: Re: Командная строка в консоле
Отправлено: Kurles от Февраль 18, 2013, 07:47
не решает проблему.
std::cout будет выводить строку на последнюю линию консольного окна, а не на предпоследнюю.
Хм. Тогда ручное позиционирование вывода текста лога. Вроде платформозависимые ф-ции использовать придется.


Название: Re: Командная строка в консоле
Отправлено: Disa от Февраль 18, 2013, 09:57
Можно сделать виджет консоль в которую писать логи http://habrahabr.ru/post/122831/


Название: Re: Командная строка в консоле
Отправлено: admsasha от Февраль 18, 2013, 10:34
Можно сделать виджет консоль в которую писать логи http://habrahabr.ru/post/122831/
Без X запустится ?


Название: Re: Командная строка в консоле
Отправлено: alex312 от Февраль 18, 2013, 11:29
Без X запустится ?
Запустится, если скомпилить Qt с поддержкой вывода в фреймбуффер.
А еще можно глянуть на что-то типа ncurses.


Название: Re: Командная строка в консоле
Отправлено: cutwater от Февраль 18, 2013, 14:00
libreadline не ?


Название: Re: Командная строка в консоле
Отправлено: admsasha от Февраль 18, 2013, 16:47
Без X запустится ?
Запустится, если скомпилить Qt с поддержкой вывода в фреймбуффер.
А еще можно глянуть на что-то типа ncurses.
ncurses не подходит, т.к. он создает окно. Оно будет ограничивать вывод.


Название: Re: Командная строка в консоле
Отправлено: admsasha от Февраль 18, 2013, 16:48
libreadline не ?
Это удобная штука для создания командной строки. Но поставленную задачу (совместить с одновременным выводом логов) не решает.


Название: Re: Командная строка в консоле
Отправлено: Igors от Февраль 18, 2013, 16:49
Почему "консоль"  мужского рода (консоле)? Или так правильно в Линуксе?