Russian Qt Forum
Май 21, 2024, 11:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Gui-приложение в консольном режиме  (Прочитано 7115 раз)
sergek
Гипер активный житель
*****
Online Online

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« : Январь 09, 2013, 12:47 »

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

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

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

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

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Январь 09, 2013, 13:25 »

А вопрос в следующем - почему в Linux (Ubuntu 12.04) моя программа при запуске из терминала ведет себя, как я ожидал - как консольная, и выводит в командную строку все, что нужно?
Хороший вопрос. Улыбающийся
Наверное потому, что в linux есть нормальная поддержка консоли?
Записан
Bepec
Гость
« Ответ #2 : Январь 09, 2013, 13:30 »

Это не "нормальная поддержка консоли", а особенность ОС.
Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне. Давно было дело, но овродя всё работало.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Январь 09, 2013, 14:59 »

Это не "нормальная поддержка консоли", а особенность ОС.
А какое отношение ОС имеет консоли? И что это за особенность такая? Улыбающийся

Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне. Давно было дело, но овродя всё работало.
Теоретик? А ты попробуй.
Что бы там что-то вывести в консоль, нужно делать специальные телодвижения. Почитай MSDN. Подмигивающий
« Последнее редактирование: Январь 09, 2013, 15:01 от Old » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #4 : Январь 09, 2013, 15:28 »

Цитировать
Что бы там что-то вывести в консоль, нужно делать специальные телодвижения. Почитай MSDN. Подмигивающий

Цитировать
Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне.
Ключевое слово "Вроде".
Проверял?
Записан
Bepec
Гость
« Ответ #5 : Январь 09, 2013, 15:32 »

Цитировать
Вроде в винде спокойно выводится в консоль, если туда перенаправить вывод в мейне. Давно было дело, но овродя всё работало.

Читать умеете? Улыбающийся

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


« Последнее редактирование: Январь 09, 2013, 16:41 от Bepec » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #6 : Январь 09, 2013, 15:33 »

Крайний случай - когда GUI не грузится. Когда всё летит к чертям. И тогда имеется возможно работать в голой консоли, при помощи консольных же утилит восстановить систему/проверить диск/почистить реестр.
А у меня много консолей запущенно и я ими регулярно пользуюсь, хотя и GUI есть. Поэтому, для меня консоль обычная/обыденная программа.
Записан
Bepec
Гость
« Ответ #7 : Январь 09, 2013, 15:46 »

Я просто оставлю это здесь. Той статьи, по которой делал я - не нашёл. У меня было более извращённое решение Веселый

http://habrahabr.ru/post/130093/
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 22.