crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Передача сложного аргумента в QProcess
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 7.2.2011, 20:08
 
Цитата(RazrFalcon @ 7.2.2011, 21:50) *
PS как можно прикрутить подсветку синтаксиса у bash в QT Creator?
это отдельная тема.

вообще можно было извернутся и использовать несколько QProcess, каждый из которых запускает свою программу, ну а тебе надо будет связать их потоки В/В.
RazrFalcon Дата 7.2.2011, 20:03
  А ну да...

мой скрипт:
#!/bin/bash
xwininfo -id `wmctrl -l | grep SMPlayer | cut -c1-10`  | grep 'Absolute upper-left X' | cut -c27-
xwininfo -id `wmctrl -l | grep SMPlayer | cut -c1-10`  | grep 'Absolute upper-left Y' | cut -c27-

А так пришлось бы дважды вызывать QProcess.
BRE Дата 7.2.2011, 19:58
 
Цитата(RazrFalcon @ 7.2.2011, 19:50) *
Только теперь мне надо два процесса запускать, а со скриптом 1-н. Так даже лучше :lol: .

Эээ. Какие два процесса или один процесс?
Если посмотреть на строку, то запускается куча разных процессов, которые соединяются пайпами.
А шел, и в первом и во втором случае, будет использоваться один. Или ты про что?
RazrFalcon Дата 7.2.2011, 19:50
  ААА... ясно. Спасибо. Пашет. :lol:
Еще бы понят почему оно без скрипта не хочет =\

...
arguments<<"-c"<<"xwininfo -id `wmctrl -l | grep SMPlayer | cut -c1-10`  | grep 'Absolute upper-left X' | cut -c27-";
Если все кавычки убрать - пашет!
Только теперь мне надо два процесса запускать, а со скриптом 1-н. Так даже лучше :lol: .

PS как можно прикрутить подсветку синтаксиса у bash в QT Creator?
BRE Дата 7.2.2011, 19:48
 
Цитата(RazrFalcon @ 7.2.2011, 19:45) *
qDebug()<<myProcess.readAll(); - только перед myProcess.close(); если после то выводит пустоту. Я об этом спрашивал выше.

Я на close() и внимания не обратил. :)
Его явно можно и не вызывать, все закроется автоматически после разрушения объекта myProcess.
RazrFalcon Дата 7.2.2011, 19:45
 
Цитата(read)
#!/bin/bash
xwininfo -id `wmctrl -l | grep SMPlayer | cut -c1-10` | grep 'Absolute upper-left Y' | cut -c27-


так работает
    QProcess myProcess;
    QString program = "/bin/sh";
    QStringList arguments;
    arguments<<"../ambilight/read";
    myProcess.start(program, arguments);
    myProcess.waitForFinished();
    qDebug()<<myProcess.readAll();
    myProcess.close();


qDebug()<<myProcess.readAll(); - только перед myProcess.close(); если после то выводит пустоту. Я об этом спрашивал выше.
BRE Дата 7.2.2011, 19:41
 
Цитата(RazrFalcon @ 7.2.2011, 19:39) *
Может к тому моменту там уже пусто =/

Пусто там может быть только "еще", а "уже" быть не может (если никто другой оттуда ничего не вычитывет). :)
RazrFalcon Дата 7.2.2011, 19:39
  Про шел уже нашел, спасибо.
А скрипт - это идея. Сейчас попробую.
Так как шел тоже не завелся =/

А само
qDebug()<<myProcess.readAll();
правильно, или его нужно раньше писать?
Может к тому моменту там уже пусто =/
BRE Дата 7.2.2011, 19:34
  Все пайпы организует шел, поэтому и запускать его придется.
Сделай скрипт и запускай уже его или руками запускай шел.
sh -c "cmd1 | cmd2 | cmd3"

Алексей1153 Дата 7.2.2011, 19:26
 
Цитата(RazrFalcon @ 7.2.2011, 21:09) *
так? не пашет все равно...


во-первых, у тебя зачем и кавычки (") и апострофы (') и ещё некие странные символы (`) . Ну а по существу не могу ничего подсказать, не сталкивался :(

Попробую сейчас в справку глянуть

аа, ты вон про что. У тебя же линукс. Нет, не смогу подсказать точно
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 12:51