本文为翻译,原文链接:http://www.zetcode.com/tutorials/pygtktutorial/menus/

在本教程的这个部分,我们将在菜单下工作
Menubar(菜单栏)是GUI程序最常见部分中的一个。它是位于各种菜单中的一组命令。当在控制台程序中,你必须记住所以那些晦涩难懂的命令,而在菜单里我们将大多数命令分组进入合乎逻辑的部分。因此,有一个公认的标准,那就是菜单能进一步减少大量的时间去学习一个新的程序。

>>Simple menu
在我们的第一个例子中,我们将创建一个只有一个文件菜单(file menu)的的菜单栏(menubar)。而这个菜单也仅仅只有一个菜单项目,通过选择这个菜单项,程序将会退出。

Simplemenu.py

这是一个包含最小菜单栏功能的的小示例。

MenuBar部件被创建。

顶层的MenuItem部件被创建。

退出MenuItem项被创建,并且被附加在文件MenuItem之下。

顶层的MenuItem被追加到MenuBar部件之上

不想其它的工具包,我们得小心地布局我们的菜单栏。我们将菜单栏放进垂直箱子容器。

Simple Menu

>> Image Menu
在下一个例子中,我们将更深入的探究菜单。我们将增加图片和快捷键到我们的菜单项。Accelerators就是为了激活菜单项的键盘快捷键。
Imagemenu.py

我们的示例展示了一个顶层菜单项,其包含了3个次级菜单项。每一个菜单都包含一个图片和一个快捷键。退出菜单项的快捷键是激活的。

为了使用快捷键,我们创建了一个全局的AccelGroup对象,它将在之后被使用。

ImageMenuItem被创建。图片来自于内置的图片库。

函数gtk.accelerator_parse(),是从语法上分析指定的快捷键字符,并且返回一个含2个元素的元组,两个元素分别为:keyval(字符键对应的键值,如:N=110,O=111等)和与快捷键相关的修饰控制键(如:Control, Alt等)的对象。【此处()中为译者测试结果】

以上代码,为退出菜单项创建了Ctrl+Q快捷键。

这些代码创建了一个分隔符,其用于将菜单项分成逻辑组。

Image Menu

>> CheckMenuItem
CheckMenuItem就是一个包含复选框的菜单项。它被用来工作于布尔属性(boolean properties)。
Checkmenuitem.py

在我们的代码示例中,我们展示了一个复选框菜单项。如果复选框被激活,则状态栏部件将被显示,否则被隐藏。

CheckMenuItem部件被创建。

set_active()方法是用于激活或者不激活复选框菜单项。

依据CheckMenuItem的激活属性,我们可以显示或者隐藏状态栏部件。

Check Menu

>> SubMenu

在最后的例子中,我们证明了在PyGTK中怎样创建了一个次级菜单。
Submenu.py

创建次级菜单。

一个次级菜单就是一个Menu

这是一个菜单项的次级菜单,其属于顶级文件菜单。

次级菜单有其自己的菜单项。

SubMenu

在PyGTK编程教程的这章中,我们展示了怎样用菜单工作。

PS:由于工作原因,我可能在这篇翻译之后就没有多少机会上网了,所以翻译的事情估计就此作罢。想学习PyGTK这个GUI库的童鞋可以参考我的这几篇翻译,然后就是我上传的两个英文教程了。其实我觉得作为入门,我翻译的这几篇就足够了,其它的都只是一些更深入的class和widget。有这个链接这个链接作为参考就足够了,不过前提是要学好English啊。

Orz…

[hr/]

PyGTK教程(中文版)完整版 doc格式下载

PyGTK教程(中文版)完整版 pdf格式下载

5 对 “PyGTK教程——菜单”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

[酷] [鄙视] [色] [脸红] [羞] [睡] [汗] [晕] [无语] [折磨] [想] [怒] [微笑] [奸笑] [困] [囧] [哭] [哈哈] [呵呵] [呆] [伤心] [亲亲] [?]

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据