eXeL@B —› Программирование —› Qt и работа с консолью |
Посл.ответ | Сообщение |
|
Создано: 01 июля 2012 23:40 · Личное сообщение · #1 Может кто на Qt пишет или писал... Созрел следующий вопрос: Есть софт по работе с определённым железом, т.е. запускается прога, и входит в свой режим консольный, где реагирует на свои команды до команды стоп Может криво выражаюсь, но думаю суть ясна... Вопрос в следующем: для софта на Qt пишется простенький GUI Как общаться с программкой в данном случае? Может в Qt для этого что-то предусмотренно более оправданное, чем тупое перенаправление вывода в файл и вылавливать регулярлярками нужные данные? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 02 июля 2012 00:22 · Личное сообщение · #2 |
|
Создано: 02 июля 2012 01:48 · Личное сообщение · #3 Isaev Если я правильно понял вопрос, то самое простое это юзать QProcess, позволяет запускать, писать и считывать консоль, ну или уточняй вопрос. По ссылке страница справки по классу |
|
Создано: 02 июля 2012 01:53 · Личное сообщение · #4 |
|
Создано: 02 июля 2012 01:56 · Поправил: F_a_u_s_t · Личное сообщение · #5 reversecode Ну да, текстовые, просто в отличии от виндовских пайпов это будет работать везде где работает QT. На сколько я знаю законных-без хаков нет вариантов хотя я не гуру QT может все таки и есть но я не знаю. Есчо интересный класс - QIODevice. Хотя сам не разу не пользовался этим классом, не было необходимости но тоже с консолью может работать. |
|
Создано: 02 июля 2012 06:56 · Личное сообщение · #6 |
|
Создано: 02 июля 2012 09:32 · Поправил: MNV · Личное сообщение · #7 |
|
Создано: 02 июля 2012 11:45 · Личное сообщение · #8 |
|
Создано: 02 июля 2012 12:40 · Поправил: F_a_u_s_t · Личное сообщение · #9 reversecode Инициатива наказуема в виде последующего геморроя, в рашке так, да и reversecode пишет: разверсить утилиту тоже не так просто в плане лицензии, если контора не ООО "Рога и копыта" то никто не даст пока правообладатель не даст добро, у меня уже был такой опыт, контара которая писала программу закрылась, так искали правообладателя и брали у него разрешение (нужно было перенести программу с кларионовской базы на SQLite), ну и самое главное что надо убедить руководство что без этого мир сломается и самое главное что нужна дополнительная оплата по мимо зарплаты, вот это самое сложное. Add: Тоже верно, кто ничего не делает тот ничего и не получает. |
|
Создано: 02 июля 2012 13:03 · Личное сообщение · #10 |
|
Создано: 02 июля 2012 15:15 · Личное сообщение · #11 MNV чужое, но спс reversecode пишет: я думаю если все так серьезно то можно связатся с производителеми получить всю документацию или полностью соурсы утилитыи написать нормальное гуи приложение котрое общается сразу с железкой утилька свободная(даже с сырками, но нужна именно надстройка), т.ч. ничего серьёзного. просто вывод не в консоль организовать а на форму надо и хватит уже дискутировать, меня уже послали в нужном направлении... разбераюсь )) не совсем доосмыслил один момент: процесс запускается, ищет вокруг устройства в бесконечном цикле, выводит в консоль найденные мак-адреса. Через QProcess надо же сначала дождаться "завершения бесконечного цикла " или можно читать в процессе? Если можно, на что реагировать? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 02 июля 2012 16:34 · Поправил: F_a_u_s_t · Личное сообщение · #12 Isaev пишет: на что реагировать? waitForXXX где XXX == Finished ReadyRead итд. Add: Мимоходом нашел годный пример |
|
Создано: 03 июля 2012 02:57 · Личное сообщение · #13 |
|
Создано: 16 июля 2012 21:24 · Поправил: Isaev · Личное сообщение · #14 Code:
В чём косяк? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 17 июля 2012 01:00 · Личное сообщение · #15 Isaev Code:
У меня нормально работает. |
|
Создано: 17 июля 2012 01:12 · Личное сообщение · #16 |
|
Создано: 17 июля 2012 01:28 · Личное сообщение · #17 |
|
Создано: 17 июля 2012 08:35 · Поправил: Isaev · Личное сообщение · #18 F_a_u_s_t не выводится ничего, просто пустая консоль запускается комментировал, ничего не меняется... я её потом в хелпе нарыл изначально и не было оно где-то подвисает, возможно на term.waitForReadyRead(); при этом консоль пустая, но реагирует на комагды с клавы через пол минуты убивается автоматом с сообщением QProcess: Destroyed while process is still running. (в окошке ошибок снизу) только потом доходит до команды вывода результата, и он пустой, даже если что-то вводишь сам ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 19 июля 2012 17:05 · Личное сообщение · #19 |
|
Создано: 19 июля 2012 18:57 · Личное сообщение · #20 |
eXeL@B —› Программирование —› Qt и работа с консолью |