我想创建一个简单的图形(Qt,Gtk,...)对话框,具体地说是一个简单的打印对话框,作为lpr的“前端”,在bash中。 我想要的是?每页打印多少页,打印间隔。这是(至少)两种选择。
解决此问题的最佳工具是什么?
答案 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
按dialog
替换xdialog
:
答案 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"
当我选择“每张2页”和“1-12”页面并点击OK
后,输出将2|1-12|
。
这就是我想要的。 Zenity或Xdialog可以做类似的事情吗?
答案 2 :(得分:2)
Whiptail是使用newt代替ncurses的dialog
替换。它
提供了一种显示几种不同类型对话框的方法
来自shell脚本。这允许脚本开发人员进行交互
用户以更友好的方式。
答案 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月,它似乎将得到积极维护。