Russian Qt Forum

Qt => Вопросы новичков => Тема начата: sergek от Январь 09, 2013, 12:47



Название: Gui-приложение в консольном режиме
Отправлено: sergek от Январь 09, 2013, 12:47
Коллеги, тоже столкнулся с необходимостью запуска приложения с графическим интерфейсом из командной строки. При этом оконный интерфейс не вызывается, и есть необходимость вывода в консоль некоторой информации во время выполнения программы.

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

Столкнулся с тем, что под Windows ничего не смог вывести в stdout. Внимательно изучил все, что попалось по этой теме в форуме. Понял следующее - для gui-приложения вывод в консоль невозможен (ну, или почти невозможен, но эти варианты меня не заинтересовали из-за их неэстетичности;). Можно, конечно, в проект добавить CONFIG +=console, но тогда при работе с оконным интерфейсом лишней оказывается консоль, которая болтается, как черный флаг.

А вопрос в следующем - почему в Linux (Ubuntu 12.04) моя программа при запуске из терминала ведет себя, как я ожидал - как консольная, и выводит в командную строку все, что нужно?


Название: Re: Gui-приложение в консольном режиме
Отправлено: Old от Январь 09, 2013, 13:25
А вопрос в следующем - почему в Linux (Ubuntu 12.04) моя программа при запуске из терминала ведет себя, как я ожидал - как консольная, и выводит в командную строку все, что нужно?
Хороший вопрос. :)
Наверное потому, что в linux есть нормальная поддержка консоли?


Название: Re: Gui-приложение в консольном режиме
Отправлено: Bepec от Январь 09, 2013, 13:30
Это не "нормальная поддержка консоли", а особенность ОС.
Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне. Давно было дело, но овродя всё работало.


Название: Re: Gui-приложение в консольном режиме
Отправлено: Old от Январь 09, 2013, 14:59
Это не "нормальная поддержка консоли", а особенность ОС.
А какое отношение ОС имеет консоли? И что это за особенность такая? :)

Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне. Давно было дело, но овродя всё работало.
Теоретик? А ты попробуй.
Что бы там что-то вывести в консоль, нужно делать специальные телодвижения. Почитай MSDN. ;)


Название: Re: Gui-приложение в консольном режиме
Отправлено: Old от Январь 09, 2013, 15:28
Цитировать
Что бы там что-то вывести в консоль, нужно делать специальные телодвижения. Почитай MSDN. Подмигивающий

Цитировать
Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне.
Ключевое слово "Вроде".
Проверял?


Название: Re: Gui-приложение в консольном режиме
Отправлено: Bepec от Январь 09, 2013, 15:32
Цитировать
Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне. Давно было дело, но овродя всё работало.

Читать умеете? :)

И да, это предложение, высказанное лично от меня, относится ко мне и моей программе и означает, что довольно давно (года полтора назад) я имел необходимость сращивания консольной и GUI утилиты путём передачи данных через консоль. Судя о том, что неприятных воспоминаний у меня не осталось, имеет место уверенность (%70), что всё работало, заказчик был доволен и счастлив.




Название: Re: Gui-приложение в консольном режиме
Отправлено: Old от Январь 09, 2013, 15:33
Крайний случай - когда GUI не грузится. Когда всё летит к чертям. И тогда имеется возможно работать в голой консоли, при помощи консольных же утилит восстановить систему/проверить диск/почистить реестр.
А у меня много консолей запущенно и я ими регулярно пользуюсь, хотя и GUI есть. Поэтому, для меня консоль обычная/обыденная программа.


Название: Re: Gui-приложение в консольном режиме
Отправлено: Bepec от Январь 09, 2013, 15:46
Я просто оставлю это здесь. Той статьи, по которой делал я - не нашёл. У меня было более извращённое решение :D

http://habrahabr.ru/post/130093/