Я хочу создать простой графический интерфейс для приложения, использующего bash, так что, например, нажатие кнопки приведет к выполнению некоторых команд bash и т. Д.
Существует также простой интерфейс для создания GUI, мне нужны только кнопки и текстовые области, которые не требуются для изучения нового языка программирования?
Я отправил ответ здесь, который может быть полезным для удобства, я просто помещу его здесь снова.
Yad может быть полезным в этом отношении, это - ветвление zenity с большим количеством функций, одним из них способность создать формы.
Вот очень простой пример формы:
#!/bin/bash
frmdata=$(yad --title "Test Form" --form --field "Address" --field="Name")
frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
echo $frmaddr > test.txt
echo $frmname >> test.txt
Вышеупомянутый сценарий отобразит форму как это:
После того, как Вы вводите свои данные и нажимаете ОК или совершаете нападки, вводят в клавиатуру, данные формы будут записаны в текстовый файл под названием test.txt, я использую awk для разделения данных формы, которые являются строкой с каналом как разделитель полей, я полагаю, что существует прямой способ получить данные без awk, но я не yad эксперт, проверьте, что проект размещает и задает вопросы, можно найти более изящный путь.
Как получить и установить yad здесь:
http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html
проект yad домой:
больше примеров здесь:
http://technostripe.com/yad-a-fork-of-zenity-with-more-features/
http://code.google.com/p/yad/wiki/Examples
Еще нет никакого конструктора форм для него, но так как синтаксис так прост и так близко к zenity, который обычно не является проблемой.
Посмотрите на это: http://sites.google.com/site/easybashgui
Вы используете:
source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
Для простого пользовательского ввода вы можете использовать zenity
(находится в пакете zenity
). Простым примером может быть что-то вроде этого:
VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE
Для текстовой области (как мы бы сказали в мире HTML) вы бы изменили синтаксис на что-то вроде этого:
zenity --text-info --title="Give me inputz" --editable
Вы можете узнать намного больше из его руководства . Это очень гибкая пользовательская библиотека для ввода простых сценариев.
Редактировать: Вы также можете найти хороших примеров в Linuxaria .
Попробуйте tkbash .
Вы можете указать такие элементы, как этот
tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"