Подтвердить что ты не робот

Диалог от bash script

Я хочу создать простой графический диалог (Qt, Gtk,...), который, безусловно, представляет собой простой диалог печати, как "frontend" для lpr, в bash. Что я хочу? Сколько страниц на странице, интервал печати. Это (по крайней мере) два варианта.

Каков наилучший способ решить эту проблему?

4b9b3361

Ответ 1

Я искал, какие создатели диалога. Я нашел yad и с этим могу установить желаемые параметры:

yad --skip-taskbar --center --title="Print dialog" {--image,--window-icon}=/usr/share/icons/Tango/72x72/devices/printer1.png --form --item-separator=, --field="Pages per sheet":CB 1,2,4,6,8 --field="Pages"

Dialog

И когда я выбираю "2 страницы на лист" и страницы "1-12", а после нажатия OK вывод будет 2|1-12|.

Это то, чего я хотел. Zenity или Xdialog могут делать похожие?

Ответ 2

Существует

  • dialog (на основе ncurses)
  • xdialog (основанный на X11)

Сообщается, что существуют другие реализации:

Если вы используете gpm, вы даже можете использовать мышь в среде консоли. Он требует tty, поэтому он будет работать поверх ssh, screen, xterm и т.д., Но не при пересылке/перенаправлении.

Оба имеют более или менее одинаковый интерфейс, поэтому вы можете переключаться в зависимости от того, доступен ли X-дисплей

Вот диалоговое окно script, в котором отображается простое поле "Да/Нет":

#!/bin/bash
DIALOG=${DIALOG=dialog}

$DIALOG --title " My first dialog" --clear \
        --yesno "Hello , this is my first dialog program" 10 30

case $? in
  0)
    echo "Yes chosen.";;
  1)
    echo "No chosen.";;
  255)
    echo "ESC pressed.";;
esac

enter image description here

Замена dialog на xdialog:

enter image description here

Ответ 3

Whiptail отображает удобные диалоговые окна из сценариев оболочки

Whiptail является заменой dialog, используя newt вместо ncurses. Это предоставляет способ отображения нескольких различных типов диалоговых окон из сценариев оболочки. Это позволяет разработчику script взаимодействовать с пользователь намного дружелюбнее.

whiptail example

Ответ 4

matedialog (AKA mate-dialog) использует GTK+. Он также может быть единственным инструментом диалога script GUI, доступным в Cygwin.

Ответ 5

Вы можете использовать gdialog в gnome/ubuntu. Я больше не могу найти xdialog в 14.10. Ответ от @sehe работает с ним, просто измените диалог для gdialog.