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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Консоль stdin/stdout в GUI приложении  (Прочитано 5131 раз)
Тамбовчанин
Гость
« : Февраль 24, 2010, 16:58 »

Привет всем!

Есть следующая задача. Надо сделать GUI приложение с панельками и кнопочками, вызывающими команды, но при этом должна быть возможность вводить эти команды вручную, типа через консоль. Самый близки аналог - Автокад. Там и кнопочки, и команды внизу экрана можно вводить.

В принципе форма с кнопочками уже есть и работает, также есть консольное приложение, которое получает от пользователя данные, формирует в памяти данные того же класса, и может даже файл записать. Как это совместить в одной форме? Можно ли какой-нибудь GUI-widget повесить и совместить его с sdtin/stdout?

Или лучше через QProcess совместить и обмен данными наладить?
Записан
Akaiten
Гость
« Ответ #1 : Февраль 24, 2010, 17:30 »

Может после ввода команды запускать ваше консольное приложение с соответствующими параметрами? Ну, а если следовать идее, то консольное приложение нафиг не нужно, парсите введённую команду и выполняете необходимые действия. Ведь нажатие на кнопочку тоже действие Подмигивающий
Записан
Тамбовчанин
Гость
« Ответ #2 : Февраль 25, 2010, 11:46 »

Это все понятно, если кнопки первичны. Но хотелось бы именно сделать, чтобы первичным была консоль с возможностью ввода команды вручную, а кнопки по необходимости иницировали ввод в консоль названия команды и перевод ее в ожидание ввода параметров.

Чтобы на первом этапе не рисовать кучу форм для ввода, а воспользоваться вводом данных через stdin. Вопрос в том как консольный ввод/вывод подсоединить к форме главного окна.

Еще один аналог приходит на ум как в IDE - там же есть консоль вывода sdtout.
Записан
Akaiten
Гость
« Ответ #3 : Февраль 25, 2010, 13:16 »

Почитай внимательно описание QProcess. Он наследуется от QIODevice и позволяет использовать методы read() и write() для работы со стандартными потоками ввода/вывода. Попробуй, сам не пробовал.
Записан
nn1317
Гость
« Ответ #4 : Февраль 25, 2010, 22:29 »

>Он наследуется от QIODevice и позволяет использовать методы read() и write() для работы со стандартными потоками ввода/вывода. Попробуй, сам не пробовал.
вообще под винду это известная проблема, что нет возможности слать вывод в консоль в приложении которое использует модуль GUI. я это застал еще в начале 4й ветки, подозреваю что так всегда было)
Записан
Тамбовчанин
Гость
« Ответ #5 : Февраль 26, 2010, 19:37 »

Ну я не под винду пишу, а под X, так что может получится?
Записан
BRE
Гость
« Ответ #6 : Февраль 26, 2010, 19:43 »

Ну я не под винду пишу, а под X, так что может получится?
Может получиться, если ты все таки посмотришь на QProcess.  Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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