Передача сложного аргумента в QProcess |
Здравствуйте, гость ( Вход | Регистрация )
Передача сложного аргумента в QProcess |
RazrFalcon |
7.2.2011, 19:01
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Это надо выполнить.Вот фулл:
У меня ""`wmctrl -l | grep SMPlayer | cut -c26-`"" должно быть как бы в двух кавычках. Если arguments<<'"-name"'; то даже не компилит. Сообщение отредактировал RazrFalcon - 7.2.2011, 19:02 |
|
|
Алексей1153 |
7.2.2011, 19:07
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
экранировать кавычку ?
\" ?
|
|
|
RazrFalcon |
7.2.2011, 19:09
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
arguments<<"-name"<<"\"`wmctrl -l | grep SMPlayer | cut -c26-`\""<<"| grep 'Absolute upper-left Y' | cut -c27-";
так? не пашит все равно... ИЛИ QProcess вообще может работать с конвейерами, или надо каждый аргумент отдельно запускать? Я про wmctrl, grep, cut. qDebug()<<arguments; выводит: Цитата ("-name", ""`wmctrl -l | grep SMPlayer | cut -c26-`"", "|", "grep", ""Absolute upper-left Y"", "|", "cut", "-c27-") Так что все вроде в норме.Сообщение отредактировал RazrFalcon - 7.2.2011, 19:24 |
|
|
Алексей1153 |
7.2.2011, 19:26
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
так? не пашет все равно... во-первых, у тебя зачем и кавычки (") и апострофы (') и ещё некие странные символы (`) . Ну а по существу не могу ничего подсказать, не сталкивался Попробую сейчас в справку глянуть аа, ты вон про что. У тебя же линукс. Нет, не смогу подсказать точно |
|
|
BRE |
7.2.2011, 19:34
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Все пайпы организует шел, поэтому и запускать его придется.
Сделай скрипт и запускай уже его или руками запускай шел.
|
|
|
RazrFalcon |
7.2.2011, 19:39
Сообщение
#6
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Про шел уже нашел, спасибо.
А скрипт - это идея. Сейчас попробую. Так как шел тоже не завелся =/ А само qDebug()<<myProcess.readAll(); правильно, или его нужно раньше писать? Может к тому моменту там уже пусто =/ |
|
|
BRE |
7.2.2011, 19:41
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
RazrFalcon |
7.2.2011, 19:45
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Цитата(read) #!/bin/bash xwininfo -id `wmctrl -l | grep SMPlayer | cut -c1-10` | grep 'Absolute upper-left Y' | cut -c27- так работает
qDebug()<<myProcess.readAll(); - только перед myProcess.close(); если после то выводит пустоту. Я об этом спрашивал выше. |
|
|
BRE |
7.2.2011, 19:48
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
RazrFalcon |
7.2.2011, 19:50
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
ААА... ясно. Спасибо. Пашет.
Еще бы понят почему оно без скрипта не хочет =\ ... Если все кавычки убрать - пашет!Только теперь мне надо два процесса запускать, а со скриптом 1-н. Так даже лучше . PS как можно прикрутить подсветку синтаксиса у bash в QT Creator? Сообщение отредактировал RazrFalcon - 7.2.2011, 19:54 |
|
|
Текстовая версия | Сейчас: 21.12.2024, 20:00 |