首页 - 教程专区 - PyS60教程 - 米饭教程

----------------
添加菜单
--------------------

应のBlog

首先我想说一下,有人说学PY要会C++.我倒不认为如此.我个人没有一点C基础,大一的时候计算机课我都不知道C语言是干嘛用的.所以相信我,只要你想学,没有基础无所谓.还有关于会不会英语这个事,由于我会一点英语,所以理解代码相对简单一些.但是,不会英语绝对不影响学习PY,只要你把平时用的那些代码记住,或者写到小本上,后面标上是什么功能,日子久了,你就能熟练运用它们了,不是所有程序员都精通英语吧?我一直坚信一句话,世上无难事,只怕有心人. 咱们继续...

上一讲中说了如何创建一个基础程序.现在我们再把那代码打开.
然后在里面加点东西,让它变成下面这个样子:
****代码开始****
import appuifw
def cn(x):return x.decode("utf-8")
appuifw.app.body = m = appuifw.Text()
m.set(u"zntx.org.cn")
m.add(cn("\n米饭教程"))
appuifw.app.menu = [(cn("添加文字"),lambda:m.add(cn("这是添加文字功能"))),(cn("清除屏幕"),lambda:m.set(""))]

****代码结束****

点击下载代码

讲解:
这里的 appuifw.app.menu 就是定义左选项键的代码.具体格式为: appuifw.app.menu=[(文字,动作),(文字,动作)] 平时在写代码的时候一定注意这里的括号对应正确. 再看上面的代码, (cn(’添加文字’),lambda:m.add(cn(’这是添加文字功能’))) 这段代码中的 lambda ,我在PYTHON简明教程里看到的这个就翻译为lambda表达式,lambda语句用来创建函数对象.这个是什么意思就先不要管了,慢慢就明白了. lambda后面跟的是:m.add(),这个已经知道是什么意思了吧?下一个选项是清除屏幕,我们只是m.set了一个空白,就是说用空白覆盖以前界面上所有的文字.记得我最开始做十六进制快查的时候研究了好久清除屏幕的代码,结果有一天忽然想到原来就是这样.呵呵.

当然,上面的这个代码还可以写成下面这样,是一样的效果的.
****代码开始****
import appuifw
def cn(x):return x.decode("utf-8")
def add():m.add(cn("这是添加文字功能"))
def clear():m.set("")#括号里面是一对双引号

appuifw.app.body = m = appuifw.Text()
m.set(u"zntx.org.cn")
m.add(cn("\n米饭教程"))
appuifw.app.menu = [(cn("添加文字"),add),(cn("清除屏幕"),clear)]

****代码结束****
点击下载代码

讲解:
这次我们定义了addclear两个函数,然后在选项里我们定义:如果选择添加文字选项就运行add函数,如果选择清除屏幕就运行clear函数.
这里你可以把add和clear改为方便你记忆的字符,但是好像不能以数字开头和中文,例如这里你可以把add改为tianjia ,clear改为qingchu 这都是可以的.只要便于你理解就可以了.

这篇说的好像有点啰嗦或者费解,你慢慢看看,多研究研究,如果还不懂就照葫芦画瓢先把代码抄上,然后自己尝试改一下.一定要自己多尝试,不能只按着我说的做,那样你就是robot机器人了.呵呵.

下一编
上一编

首页 - 教程专区 - PyS60教程 - 米饭教程