2014-01-26 2 views
3

Я хочу получить значения формы в zenity (значение Ipaddress, написанное пользователем), чтобы сделать некоторую потоковое видео с помощью ffmpeg, я попробовал несколько примеров, таких как списки, формы , .. и т.д.Как получить значения разных форм в zenity

zenity --forms --title="Add Friend" --text="Enter Multicast address" --separator="," --add-entry="IP address" --add-entry="PORT" 

ИЛИ

if zenity --list --title="Record Video Stream" --text "Enter the Multicast IP address and port of each of the video stream" --column "Video IP" --print-column=2 --multiple --column "PORT" --editable ip="0.0.0.0" port="2002" 

ответ

4

выходной сигнал из zenity текст, который был введен, отделены друг от друга --separator характера. Код выхода, если он принят или нет (т. Е. Выбрано OK, Cancel).

Так, например (в Баш):

OUTPUT=$(zenity --forms --title="Add Friend" --text="Enter Multicast address" --separator="," --add-entry="IP address" --add-entry="PORT") 
accepted=$? 
if ((accepted != 0)); then 
    echo "something went wrong" 
    exit 1 
fi 

ip=$(awk -F, '{print $1}' <<<$OUTPUT) 
port=$(awk -F, '{print $2}' <<<$OUTPUT) 

Это получает вас IP-адрес из Zenity в переменную внутрибрюшинно и порт из формы Zenity в переменную порта.

Второй пример немного сложнее, он использует шаблон «editable», что означает, что вы не получаете никакого вывода, если данные не изменяются, но он соответствует аналогичному шаблону предыдущему примеру. Теперь, поскольку вы сказали --print-column=, он отображает только этот столбец на выходе. К сожалению, --list предназначен для выбора одной или нескольких строк из списка элементов. Редактирование нескольких строк будет работать, но у вас есть, чтобы выбрать каждую из строк, чтобы получить результат из этой строки, даже после внесения изменений в данные. В этом случае, поскольку вы не указали опцию --separator, используется разделитель по умолчанию |.

Во втором случае использование редактируемых и входов списка не является тем, что список предназначен для использования с точки зрения пользователя.

+0

Знаете ли вы, можно ли установить значения формы из кода? @Petesh – user573014

+0

Когда есть несколько вариантов (т. Е. Стиль ввода '--forms'), он не поддерживает указание входных значений по умолчанию для полей (как можно ближе). Если у вас есть только одна запись, вы можете использовать «zenity -entry -text =» текст диалога «-entry-text =» текст по умолчанию »' – Petesh

Смежные вопросы