Russian Qt Forum

Qt => Общие вопросы => Тема начата: Тамбовчанин от Февраль 24, 2010, 16:58



Название: Консоль stdin/stdout в GUI приложении
Отправлено: Тамбовчанин от Февраль 24, 2010, 16:58
Привет всем!

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

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

Или лучше через QProcess совместить и обмен данными наладить?


Название: Re: Консоль stdin/stdout в GUI приложении
Отправлено: Akaiten от Февраль 24, 2010, 17:30
Может после ввода команды запускать ваше консольное приложение с соответствующими параметрами? Ну, а если следовать идее, то консольное приложение нафиг не нужно, парсите введённую команду и выполняете необходимые действия. Ведь нажатие на кнопочку тоже действие ;)


Название: Re: Консоль stdin/stdout в GUI приложении
Отправлено: Тамбовчанин от Февраль 25, 2010, 11:46
Это все понятно, если кнопки первичны. Но хотелось бы именно сделать, чтобы первичным была консоль с возможностью ввода команды вручную, а кнопки по необходимости иницировали ввод в консоль названия команды и перевод ее в ожидание ввода параметров.

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

Еще один аналог приходит на ум как в IDE - там же есть консоль вывода sdtout.


Название: Re: Консоль stdin/stdout в GUI приложении
Отправлено: Akaiten от Февраль 25, 2010, 13:16
Почитай внимательно описание QProcess. Он наследуется от QIODevice и позволяет использовать методы read() и write() для работы со стандартными потоками ввода/вывода. Попробуй, сам не пробовал.


Название: Re: Консоль stdin/stdout в GUI приложении
Отправлено: nn1317 от Февраль 25, 2010, 22:29
>Он наследуется от QIODevice и позволяет использовать методы read() и write() для работы со стандартными потоками ввода/вывода. Попробуй, сам не пробовал.
вообще под винду это известная проблема, что нет возможности слать вывод в консоль в приложении которое использует модуль GUI. я это застал еще в начале 4й ветки, подозреваю что так всегда было)


Название: Re: Консоль stdin/stdout в GUI приложении
Отправлено: Тамбовчанин от Февраль 26, 2010, 19:37
Ну я не под винду пишу, а под X, так что может получится?


Название: Re: Консоль stdin/stdout в GUI приложении
Отправлено: BRE от Февраль 26, 2010, 19:43
Ну я не под винду пишу, а под X, так что может получится?
Может получиться, если ты все таки посмотришь на QProcess.  ;)