Нужен интерфейс для сценария оболочки gui, более мощный, чем зенит

Это остановило мою установку мертвыми на своих дорожках, выполняя альтернативную установку с зашифрованным томом. Используя unetbootin для создания изображения, шесть файлов, упомянутых выше, отсутствовали. Я убежден, что это проблема с именами файлов и ограничениями длины пути, в результате чего эти длинные имена файлов будут отсутствовать. Эта проблема отмечена как недопустимая ошибка здесь: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1041911

В конечном итоге добавление файлов не помогло. И мне пришлось загрузиться в неполную установку и установить ubuntu-desktop вручную.

2
задан 28 December 2011 в 03:24

5 ответов

Яд может быть полезен в этом отношении, это вилка зенита с большим количеством функций, одна из которых способна создавать формы.

Вот очень простой пример формы: [!d1 ]

#!/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 здесь:

http://www.webupd8.org/ 2010/12 / yad-zenity-on-steroids-display.html

yad project home:

http://www.webupd8.org/2010/12/ yad-zenity-on-steroids-display.html

больше примеров здесь:

http://technostripe.com/yad-a-fork-of-zenity -with-more-features /

http: //technostripe.com/yad-a-fork-of-zenity-with-more-features/

Я опоздал, но это может быть полезно.

8
ответ дан 25 May 2018 в 22:28

Яд может быть полезен в этом отношении, это вилка зенита с большим количеством функций, одна из которых способна создавать формы.

Вот очень простой пример формы:

#!/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

Вышеприведенный скрипт отобразит такую ​​форму:

Yad Form Example [/g4]

После ввода данных и нажмите «ОК» или нажмите «Ввод» клавиатура, данные формы будут записаны в текстовый файл test.txt, я использую awk для разделения данных формы, которая является строкой с каналом в качестве разделителя полей, я считаю, что есть прямой способ получить данные без awk, но я не эксперт, пожалуйста, проверьте проект дома и задайте вопросы, вы можете найти более элегантный способ.

Как получить и установить yad здесь:

http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html

yad project home:

http://code.google.com/p/yad/

больше примеров здесь:

http://technostripe.com/yad-a -fork-of-zenity-with-more-features /

http: // cod e.google.com/p/yad/wiki/Examples

Я опоздал, но это может быть полезно.

9
ответ дан 2 August 2018 в 03:47

xDialog - это нечто похожее, вот список поиска из freshmeat. tcl / tk - еще один популярный инструмент для таких заданий.

Плохое решение потребует от пользователя заполнить список и, наконец, пометить все строки:

zenity --list --text "Fill every row, and mark all rows before hitting 'OK'" --column "title" --print-column=2 --multiple --column "value" --editable "name" "(please override)" "host" "" "ip" ""

Допустим, что это не удобно.

3
ответ дан 25 May 2018 в 22:28

Мой ответ может быть запоздалым (думаю, два года спустя), но так как многие люди все еще ищут ответ на этот же вопрос, это может быть полезно. Я также ищу решение «лучше, чем zenity / yad / xdialog», и я нашел две очень хорошие программы:

gtkdialog: http://code.google.com/p/gtkdialog/ вы можете создать полный пользовательский интерфейс для bash, который продолжает работать при общении с вашим backendcript. Он активно развивается и также используется разработчиками щенков. это собственный поляризованный язык, более мощный, чем libglade, однако он может запускать libglade XML. gtkserver: http://www.gtk-server.org/ Этот шаг идет еще дальше и работает как сопроцесс, когда вы общаетесь со своим скриптом bash через каналы, сообщения или TCP-порты. Он не работает с XML-типизированным файлом описания, а с GTK-командами, которые вы вызываете из командной строки bash. Очень мощный :-)

gtkdialog больше не находится в репозиториях, но вы можете запланировать последние версии в PPA (https://launchpad.net/~dnjl/+archive/build/+sourcepub/ 2986274 / + listing-archive-extra)

gtkserver не имеет PPA или deb AFAIK, поэтому это должно быть скомпилировано из источника.

3
ответ дан 25 May 2018 в 22:28

Одним из решений было бы использовать Zenity, но просто отображать каждую подсказку индивидуально. Первое приглашение будет для первого поля, а затем, когда пользователь нажмет «ОК», вы можете запросить второе поле.

Похоже, что вы можете достичь пределов сценариев и, возможно, захотите чтобы изучить интерфейс приложения, используя что-то вроде QT или GTK.

1
ответ дан 25 May 2018 в 22:28
  • 1
    @Windigo ... QT или GTK, о чем я думаю .., но учить кривую гораздо больше, чем другие, такие как Zenity – moata_u 20 March 2011 в 20:37

Другие вопросы по тегам:

Похожие вопросы: