Gtkdialog  - 在Linux中使用Shell脚本创建图形(GTK +)接口和对话框

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程序

现在,我们将简要解释代码。

  1. #!/斌/ bash下的任何shell脚本的第一行,它是用来指定bash shell的路径。
  2. GTKDIALOG = gtkdialog:在这里我们定义的变量与gtkdialog执行shell脚本的时候用到它,这条线必须在创建使用gtkdialog所有脚本。
  3. 出口MAIN_DIALOG =:我们定义将包含所有的语法为我们的接口的另一个变量,你可以用任何你想要的名称替换MAIN_DIALOG,但你也必须更换它去年4行的脚本。
  4. 窗口标题 :我不认为这个代码需要说明,我们创建了一个标题,为窗口的默认图标,我们选择它是否是可调整大小与否,我们定义的宽度和高度,我们想要的,当然,所有这些选项都是次要的,你可以,如果你只想使用<窗口>标记。
  5. <VBOX>:我们用VBOX标签来创建一个垂直的盒子,它以包含其他标记如HBox和按钮等创建一个VBOX的标签是非常重要的
  6. <横向盒>:在这里,我们创建使用<横向盒>标签的横向盒“空间填充”和“空间拓展”的选项,用于扩大透过窗户横向盒。
  7. <按钮>:创建一个新的按钮。
  8. <标签>:这是按钮的默认文本,我们关闭使用</标签>标签标记,当然它关闭所有我们使用的标签是非常重要的。
  9. <动作>:这会发生什么按钮被点击的时候,你可以,如果你想或者如果你想执行的任何其他文件,还有许多其他的动作和信号以及运行shell命令,不要忘记使用时关闭它< / action>。
  10. </按钮>:要关闭按钮标签。
  11. </横向盒>:要关闭横向盒标签。
  12. </窗>:要关闭窗口的标签。

最后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选择框

现在,我们将简要解释代码。

  1. 我们使用<combobox>创建一个combobox小部件,<variable>标签是所选项目将被存储的变量的默认名称,我们使用此变量稍后使用echo打印所选项目。
  2. <hseparator>是一个水平分隔符,你可以使用宽请求选项为它设置默认的宽度。
  3. <按钮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

从下拉列表中选择名称

从下拉列表中选择数字

这里,以更详细的方式解释代码。

  1. 我们使用<notebook>创建了两个笔记本标签,tab-label选项是您可以创建标签的地方,gtkdialog将根据您输入的标签创建标签,每个<vbox>都定义为标签,因此第一个标签以第一个<vbox>,第二个标签从第二个<vbox>开始。
  2. <正文>是一个文本组件,我们使用了<label>标记来设置它的默认文本。
  3. <数值调节钮>标签将创建一个新的旋转按钮,范围分钟选项是最小值,范围-max是旋转按钮的最大值,范围值是旋转按钮的默认值。
  4. 我们给了一个变量“myscale”到<spinbutton>。
  5. 我们使用echo和$ myscale变量打印所选择的值,这里的动作的默认信号是“值改变”,这帮助我们这样做。

这只是一个示例窗口,你可以使用gtkdialog创建更复杂的界面,如果你想,你可以浏览官方文档在gtkdialog网站,查看所有gtkdialog标签从下面的链接。

Gtkdialog文档

你之前使用过gtkdialog为你的shell脚本创建GUI吗? 或者你使用任何这样的实用程序来创建接口? 你怎么看待这件事?

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏