来自bash脚本的对话框

时间:2011-12-02 09:51:26

标签: bash user-interface dialog

我想创建一个简单的图形(Qt,Gtk,...)对话框,具体地说是一个简单的打印对话框,作为lpr的“前端”,在bash中。 我想要的是?每页打印多少页,打印间隔。这是(至少)两种选择。

解决此问题的最佳工具是什么?

7 个答案:

答案 0 :(得分:21)

据报道存在其他实施:

如果使用gpm,您甚至可以在控制台环境中使用鼠标。它需要一个tty,因此它在ssh,screen,xterm等上工作,但在管道/重定向时则不行。

两者都具有或多或少相同的界面,因此您可以根据X显示器是否可用进行切换

这是一个对话框脚本,显示一个简单的YES / NO框:

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

答案 1 :(得分:5)

我搜索过哪些对话创建者。我找到了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 :(得分:2)

Whiptail显示来自shell脚本的用户友好对话框

Whiptail是使用newt代替ncurses的dialog替换。它 提供了一种显示几种不同类型对话框的方法 来自shell脚本。这允许脚本开发人员进行交互 用户以更友好的方式。

whiptail example

答案 3 :(得分:1)

matedialog(AKA mate-dialog)使用GTK +。它也可能是Cygwin下唯一可用的脚本GUI对话框工具。

答案 4 :(得分:1)

我知道这是旧线程,但是我努力给我2美分。 您还可以尝试Does numpy.random.seed() always give the same random number every time?,尽管还是实验性的。

答案 5 :(得分:0)

您可以在gdialog中使用gnome/ubuntu。我在14.10中找不到xdialog了。来自@sehe的答案适用于gdialog

的更改对话框

答案 6 :(得分:0)

如果您希望创建纯Bash图形对话,则ctypes带有GTK+ dialogue generation的示例。从理论上讲,它应该能够调用与脚本一起安装或交付的任何GUI库。到2020年10月,它似乎将得到积极维护。