связь между терминалом и gui программой |
Здравствуйте, гость ( Вход | Регистрация )
связь между терминалом и gui программой |
ht1515 |
31.1.2014, 18:00
Сообщение
#1
|
Студент Группа: Участник Сообщений: 29 Регистрация: 14.4.2012 Пользователь №: 3324 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет!
Есть консольная программа - терминал. Там вводятся команды, выполняются и результат сразу же печатается в программе( н-р командная строка в винде ). Я хочу ее связать с gui программой написанной на куте. Никакой сессии, общей памяти консольная программа не дает. Она подразумевает наличие оператора ПК, который тыкать будет команды. Можно ли каким-нибудь хитрым способом передавать консольной проге команды, чтобы она их выполняла и потом получать ответ? |
|
|
ht1515 |
31.1.2014, 20:46
Сообщение
#2
|
Студент Группа: Участник Сообщений: 29 Регистрация: 14.4.2012 Пользователь №: 3324 Спасибо сказали: 0 раз(а) Репутация: 0 |
ммм... спасибо. Посмотрю. Я прокомментирую ,вы поправьте если что. Цитата QStringList args; args << "split"; args << "-w"; args << "-O" << "always"; args << "-n" << "%04d"; args << "-t" << mFilePrefix +"%n"; args << "-d" << mWorkDir; args << disk()->audioFileName(); //qDebug() << args; формирование входных параметров консольной программы. Необходимы при запуске программы. Цитата QString shntool = settings->value(Settings::Prog_Shntool).toString(); Видимо путь до программы. Цитата mProcess = new QProcess(); mProcess->setReadChannel(QProcess::StandardError); создание объекта процесса и установка ??? канала на чтение ошибок? Цитата mProcess->start(shntool, args); mProcess->waitForStarted(); Запуск процесса( консольной программы) и ожидание ее готовности к работе. Цитата sendCueData(); Отправка каких-то данных. Пока не углубляюсь куда и каких данных. В этой функции mProcess->write(" INDEX 01 00:00:00\n"); --- Видимо что-то пишется в консоль программы(cin, stdin) Цитата mProcess->closeWriteChannel(); закрыли процесс записи в консольку. Это имитация нажатия кнопки enter? Цитата parseOut(); Производим чтение результата выполнения команды. По сути чтение с консоли и парсинг. Цитата mProcess->waitForFinished(-1); блокировка потока пока процесс консольной программы не будет завершет. Цитата QProcess *proc = mProcess; mProcess = 0; delete proc; garbage collector Цитата if (OutFormat::currentFormat()->createCue()) { CueCreator cue(disk()); cue.setHasPregapFile(mPreGapExists); if (!cue.write()) error(disk()->track(0), cue.errorString()); } Какая-то работа с файлом. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 15:08 |