Gtkdialog(或gtkdialog)可以使用Linux shell脚本的帮助下创建和构建GTK +接口,对话框以及使用GTK库,以及使用XML的语法,这使得轻松地创建使用gtkdialog接口,一个开源的漂亮实用。 它与大多数着名的工具Zenity非常相似,但它带有一些有用的可定制的功能,使您可以轻松创建许多小部件,如vbox,hbox,按钮,框架,文本,菜单等等。
在Linux中创建Gtkdialog框
阅读也 : 创建的zenity使用GTK +图形对话框
在Linux中安装Gtkdialog
您可以下载gtkdialog-0.8.3 (这是最新的版本),或者你也可以使用wget命令,解压下载的文件并运行这些下面的命令从源代码进行编译。
$ sudo apt-get install build-essential [on Debian based systems]
# yum install gcc make gcc-c++ [on RedHat based systems]
$ wget https://gtkdialog.googlecode.com/files/gtkdialog-0.8.3.tar.gz $ tar -xvf gtkdialog-0.8.3.tar.gz $ cd gtkdialog-0.8.3/ $ ./configure $ make $ sudo make install
现在,让我们开始创建一些箱子,创建一个在您的个人文件夹一个新的“myprogram”的剧本。
我的第一个程序
$ cd $ touch myprogram
现在打开使用任何你想要的文本编辑器“myprogram”的文件,并将下面的代码添加到它。
#!/bin/bash GTKDIALOG=gtkdialog export MAIN_DIALOG=' <window title="My First Program" icon-name="gtk-about" resizable="true" width-request="300" height-request="310"> <vbox> <hbox space-fill="true" space-expand="true"> <button> <label>Welcome to youcl.com Home!</label> <action>echo "Welcome to youcl.com Home!"</action> </button> </hbox> </vbox> </window> ' case $1 in -d | --dump) echo "$MAIN_DIALOG" ;; *) $GTKDIALOG --program=MAIN_DIALOG --center ;; esac ------------
保存文件,并设置执行权限,并如图所示运行它。
$ chmod 755 myprogram $ ./myprogram
这是你的第一个程序创建和使用gtkdialog执行。
Gtkdialog程序
现在,我们将简要解释代码。
- #!/斌/ bash下的任何shell脚本的第一行,它是用来指定bash shell的路径。
- GTKDIALOG = gtkdialog:在这里我们定义的变量与gtkdialog执行shell脚本的时候用到它,这条线必须在创建使用gtkdialog所有脚本。
- 出口MAIN_DIALOG =:我们定义将包含所有的语法为我们的接口的另一个变量,你可以用任何你想要的名称替换MAIN_DIALOG,但你也必须更换它去年4行的脚本。
- 窗口标题 :我不认为这个代码需要说明,我们创建了一个标题,为窗口的默认图标,我们选择它是否是可调整大小与否,我们定义的宽度和高度,我们想要的,当然,所有这些选项都是次要的,你可以,如果你只想使用<窗口>标记。
- <VBOX>:我们用VBOX标签来创建一个垂直的盒子,它以包含其他标记如HBox和按钮等创建一个VBOX的标签是非常重要的
- <横向盒>:在这里,我们创建使用<横向盒>标签的横向盒“空间填充”和“空间拓展”的选项,用于扩大透过窗户横向盒。
- <按钮>:创建一个新的按钮。
- <标签>:这是按钮的默认文本,我们关闭使用</标签>标签标记,当然它关闭所有我们使用的标签是非常重要的。
- <动作>:这会发生什么按钮被点击的时候,你可以,如果你想或者如果你想执行的任何其他文件,还有许多其他的动作和信号以及运行shell命令,不要忘记使用时关闭它< / action>。
- </按钮>:要关闭按钮标签。
- </横向盒>:要关闭横向盒标签。
- </窗>:要关闭窗口的标签。
最后4行也必须在使用gtkdialog创建的所有shell脚本中,它们使用带有-center选项的gtkdialog命令执行MAIN_DIALOG变量以使窗口居中,实际上非常有用。
我的第二个计划
同样地,创建另一个文件,并把它作为“secondprogram'和下面的全部内容添加到它。
#!/bin/bash GTKDIALOG=gtkdialog export MAIN_DIALOG=' <window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> <vbox> <hbox space-fill="true"> <combobox> <variable>myitem</variable> <item>First One</item> <item>Second One</item> <item>Third One</item> </combobox> </hbox> <hbox> <button> <label>Click Me</label> <action>echo "You choosed $myitem"</action> </button> </hbox> <hseparator width-request="240"></hseparator> <hbox> <button ok></button> </hbox> </vbox> </window> ' case $1 in -d | --dump) echo "$MAIN_DIALOG" ;; *) $GTKDIALOG --program=MAIN_DIALOG --center ;; esac
保存文件,对其设置执行权限,并如图所示运行它。
$ chmod 755 secondprogram $ ./secondprogram
Gtkdialog选择框
现在,我们将简要解释代码。
- 我们使用<combobox>创建一个combobox小部件,<variable>标签是所选项目将被存储的变量的默认名称,我们使用此变量稍后使用echo打印所选项目。
- <hseparator>是一个水平分隔符,你可以使用宽请求选项为它设置默认的宽度。
- <按钮OK> </按钮>是一个OK按钮,将关闭该窗口只当你点击它,它是非常有用的,所以我们并不需要创建一个自定义按钮来做到这一点。
我的第三个Prgoram
创建一个名为“thirdprogram”另一个文件和一大堆的代码添加到它。
#!/bin/bash GTKDIALOG=gtkdialog export MAIN_DIALOG=' <window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> <notebook tab-label="First | Second|"> <vbox> <hbox space-fill="true"> <combobox> <variable>myitem</variable> <item>First One</item> <item>Second One</item> <item>Third One</item> </combobox> </hbox> <hbox> <button> <label>Click Me</label> <action>echo "You choosed $myitem"</action> </button> </hbox> <hseparator width-request="240"></hseparator> <hbox> <button ok></button> </hbox> </vbox> <vbox> <hbox space-fill="true"> <text> <label>Spinbutton </label> </text> </hbox> <hbox space-fill="true" space-expand="true"> <spinbutton range-min="0" range-max="100" range-value="4"> <variable>myscale</variable> <action>echo $myscale</action> </spinbutton> </hbox> <hbox> <button ok></button> </hbox> </vbox> </notebook> </window> ' case $1 in -d | --dump) echo "$MAIN_DIALOG" ;; *) $GTKDIALOG --program=MAIN_DIALOG --center ;; esac
保存文件,授予执行权限,并如图所示启动它。
$ chmod 755 thirdprogram $ ./thirdprogram
从下拉列表中选择名称
从下拉列表中选择数字
这里,以更详细的方式解释代码。
- 我们使用<notebook>创建了两个笔记本标签,tab-label选项是您可以创建标签的地方,gtkdialog将根据您输入的标签创建标签,每个<vbox>都定义为标签,因此第一个标签以第一个<vbox>,第二个标签从第二个<vbox>开始。
- <正文>是一个文本组件,我们使用了<label>标记来设置它的默认文本。
- <数值调节钮>标签将创建一个新的旋转按钮,范围分钟选项是最小值,范围-max是旋转按钮的最大值,范围值是旋转按钮的默认值。
- 我们给了一个变量“myscale”到<spinbutton>。
- 我们使用echo和$ myscale变量打印所选择的值,这里的动作的默认信号是“值改变”,这帮助我们这样做。
这只是一个示例窗口,你可以使用gtkdialog创建更复杂的界面,如果你想,你可以浏览官方文档在gtkdialog网站,查看所有gtkdialog标签从下面的链接。
你之前使用过gtkdialog为你的shell脚本创建GUI吗? 或者你使用任何这样的实用程序来创建接口? 你怎么看待这件事?