PyS60编程41选择列表.docx
- 文档编号:8585533
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:20
- 大小:244.64KB
PyS60编程41选择列表.docx
《PyS60编程41选择列表.docx》由会员分享,可在线阅读,更多相关《PyS60编程41选择列表.docx(20页珍藏版)》请在冰豆网上搜索。
PyS60编程41选择列表
[教程]跟米饭学PyS60编程-程序界面(4.1)
在之前我们已经学会了如何写文本界面,现在我们来学习一下其他的几种界面,在继续之前请确定以前讲的你都已经会了,不然下面的东西可能会很难理解:
)
4.1选择列表
先看个图:
这里是个列表,列表中有两个选项.现在如果点"八神",我们看出来什么效果:
这个就是我们这一讲要说的:
制作一个选择列表.
用到的还是appuifw这个模块,看代码:
#****代码开始****
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defpress():
index=listbox.current()
appuifw.note(cn("哈哈,我是")+list[index],"info")
list=[cn("八神"),cn("米饭")]
appuifw.app.body=listbox=appuifw.Listbox(list,press)
appuifw.app.exit_key_handler=exit
#****代码结束****
点此下载此段代码,下载之后改后缀为.py
讲解:
首先我们来看list=[cn("八神"),cn("米饭")]这个,这就是要显示在列表里的文字.中间用逗号隔开.例如:
list=[cn("我"),cn("你"),cn("他"),u"China"],注意两边的是中括号[]
下面的appuifw.Listbox(list,press)这里,list就是刚才定义的显示在列表里的文字,然后后面的press就是点击之后的动作:
运行press函数.
所以我们定义了press函数:
index=listbox.current()这里是说选中的是列表中的第几个选项.注意:
PYTHON都是从0开始计数的.也就是说如果你按的是第一个,这里的listbox.current()其实等于0.这个你不懂没关系,回头就知道了....干嘛呢,没让你真回头,我的意思是说以后你就知道了.
现在知道了当前选中的是第几个,那么就让列表中选中的字显示出来,这里我们用了note这个显示方法,这应该不陌生了吧.现在我们看里面的cn("哈哈,我是")+list[index]这里面的加号.如果你是在用A4的话,那么你要注意不要把+号输成中文的那个大加号,不知道是不是你们的A4也是这样,我的A4在英文状态下输入的那个加号是很大的,那个不行,一定要切换到中文状态下的那个小+号才可以的.注意了这个之后来看list[index]这个,呃,怎么解释呢,list就是刚才定义的那个,后面这个[index]就是说显示列表中的第几个.因为我们已经知道了index等于几,比如list[0]这就是"八神",如果list[1]就是"米饭".现在你自己修改一下吧,把自己的想法通过代码表达出来.下一讲我们要讲解如何做到点击每个选项有不同的动作
这篇应该是相对难懂的,但是我想如果你用心去好好研究的话,应该很快就能明白,原谅我的表达能力.apologizeforthis.
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defpress():
index=listbox.current()
appuifw.note(cn("哈哈,我是")+list[index],"info")
list=[cn("八神"),cn("米饭")]
appuifw.app.body=listbox=appuifw.Listbox(list,press)
appuifw.app.exit_key_handler=exit
[教程]跟米饭学PyS60编程-程序界面(4.1.1)
4.1.1选择列表--如何做到点击每个选项有不同的动作
怎么样?
上一讲的你都学会了吗?
上一讲的代码中,不管是点八神还是点米饭都是弹出那个哈哈我是**的提示框,现在我们改变一下,点八神的时候出来的是:
八神是站长;然后点米饭的时候弹出来:
这是米饭教程.呵呵
这里我们需要用到if语句.翻译过来就是如果的意思.
咱们还是不看废话看代码:
#****代码开始****
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defpress():
index=listbox.current()
ifindex==0:
appuifw.note(list[index]+cn("是zntx站长:
)"),"info")
elifindex==1:
appuifw.note(cn("这个教程是")+list[index]+cn("写的."),"info")
else:
appuifw.note(cn("QQ/PICA:
7716831"),"info")list=[cn("八神"),cn("米饭"),cn("米饭联系方式"),cn("其他")]
appuifw.app.body=listbox=appuifw.Listbox(list,press)
appuifw.app.exit_key_handler=exit
#****代码结束****
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defpress():
index=listbox.current()
ifindex==0:
appuifw.note(list[index]+cn("是zntx站长:
)"),"info")
elifindex==1:
appuifw.note(cn("这个教程是")+list[index]+cn("写的."),"info")
else:
appuifw.note(cn("QQ/PICA:
7716831"),"info")
list=[cn("八神"),cn("米饭"),cn("米饭联系方式"),cn("其它")]
appuifw.app.body=listbox=appuifw.Listbox(list,press)
appuifw.app.exit_key_handler=exit
#****代码结束****讲解:
看比上一讲的代码多了什么?
就是把press这个函数分为几种情景分别定义.如果按的是第1个则显示什么,如果按的第2个则显示什么,除了这些再显示什么.大致就是这个意思.里面的index的意思在上一讲中已经说了吧.
需要非常非常注意的是:
在if语句里等于一定要用两个连着的==表示,这表示等同于,!
=表示不等于.还有>=<=之类的以后再说.反正你就一定要记住:
if什么等于什么这里的等于一定是两个等号.
然后里面的elif就是elseif(除此之外如果)的意思,else这里也可以继续写成elifindex==2:
因为这里我要让你知道else的意思,所以又在列表中增加了一个"其他",现在看,我们只定义了"八神"和"米饭"这两个提示什么,然后就是除了这两个提示什么(也就是else),所以在你按下"米饭联系方式"和"其他"都会提示在else那定义的动作.这段说的我已经晕了,您慢慢理解.如果你觉得我这点话很费解那就去研究上面的代码,研究几次就明白了.下一讲我们会在这个代码基础上再丰富一下,使它成为一个小软件.你觉得怎么样?
或者是做成一个小游戏?
[教程]跟米饭学PyS60编程-程序界面(4.1.2)
还是得继续废话,现在很多朋友开始不满足于我写的这些,一直要求我写这方面或那方面的,但是我有我自己的思路,请不要着急,那些常用的代码我都会写的.如果所有人都要求我写他要的,那我想就没法写下去了.呵呵.不好意思啊.跟着我走吧.
4.1.2选择列表--界面转换
前面我们说了怎样做选择列表,也说了怎样定义选择列表之后的动作.现在你可能会想,这软件也不能只是点了列表然后弹出个提示框就行了吧?
假如我想点了列表之后到文本界面怎么做?
那么我们现在就做一个软件,打开后出现选择列表,有两个选项,一是:
点击之后进入以前我们学着做的那个编贴助手,然后点第二个列表是弹出作者信息.好.看代码:
#****代码开始****
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defeditor():
defadd():
m.add(cn("\n这是添加文字功能"))
defclear():
m.set("")#括号里面是一对双引号
appuifw.app.body=m=appuifw.Text()
m.set(u"")
m.add(cn("\n米饭教程"))
appuifw.app.menu=[(cn("添加文字"),add),(cn("清除屏幕"),clear),(cn("退出"),exit)]
appuifw.app.exit_key_handler=alist
defalist():
defpress():
index=listbox.current()
ifindex==0:
editor()
elifindex==1:
appuifw.note(cn("米饭教程"),"info")
list=[cn("进入编贴助手"),cn("关于软件")]
appuifw.app.body=listbox=appuifw.Listbox(list,press)
appuifw.app.menu=[(cn("退出"),exit)]
appuifw.app.exit_key_handler=exit
alist()
#****代码结束****
#米饭教程
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defeditor():
defadd():
m.add(cn("\n这是添加文字功能"))
defclear():
m.set("")#括号里面是一对双引号
appuifw.app.body=m=appuifw.Text()
m.set(u"")
m.add(cn("\n米饭教程"))
appuifw.app.menu=[(cn("添加文字"),add),(cn("清除屏幕"),clear),(cn("退出"),exit)]
appuifw.app.exit_key_handler=alist
defalist():
defpress():
index=listbox.current()
ifindex==0:
editor()
elifindex==1:
appuifw.note(cn("米饭教程"),"info")
list=[cn("进入编贴助手"),cn("关于软件")]
appuifw.app.body=listbox=appuifw.Listbox(list,press)
appuifw.app.menu=[(cn("退出"),exit)]
appuifw.app.exit_key_handler=exit讲解:
这段代码比以前更复杂了.我们先看最后这个alist()是什么意思呢.我们可以看出来它没有缩进,说明是这个软件打开直接运行这个函数.我们再看前面,因为我们定义了两个界面:
一个是alist,另一个是editor.所以我们就让软件打开之后首先载入alist界面.当然如果你想让程序打开时进入editor界面那就把这里的alist改为editor就好了.
然后alist和editor这两个函数里的代码我们应该不陌生了吧?
都是以前我们说过的.但是有一点新东西:
先看alist这里,ifindex==0:
editor(),这个的意思是如果选择第一个列表,那么就运行editor.这个可能不说你也明白:
)
再看editor里面,这个appuifw.app.exit_key_handler=alist就是说在editor界面的时候按右软键是返回到alist界面,而不是退出.
好了,关于选择列表这个界面我们就说到这里,下一讲我们会简单说一下图形界面.
还得说两点:
一就是:
请仔细的阅读这个教程,不要马马虎虎的看然后想当然的把代码写上,一运行出错,就马上加我QQ问我错在哪里,然后我把代码要过来一看,竟然不是少括号就是多逗号,您说,这是不是有点...
第二是:
有人说我代码里有空行,这个是我的习惯,每个单独的部分我都会用一个空行甚至是多个空行隔开,如果都挤在一起那很不方便自己理解,本来手机屏幕就小,容易没思路,如果你代码再乱七八糟的,那岂不是自己受罪?
[教程]跟米饭学PyS60编程-程序界面(4.1.3)
我回来了.大家久等了
最近很多朋友问如何创建二级菜单,所以现在临时加一节,讲一下二级菜单的创建.
首先来说一下什么是二级菜单?
请看图:
明白了吧.现在我们来看代码:
#****代码开始****
importappuifw
defcn(x):
returnx.decode("utf-8")
defexit():
appuifw.app.set_exit()
defsubmenu():
appuifw.note(cn("二级菜单一"),"info")
defsubmenu2():
appuifw.note(cn("二级菜单二"),"info")
appuifw.app.body=m=appuifw.Text(cn("按左软键查看"))
appuifw.app.menu=[(cn("一级菜单’),((cn("二级菜单一"),submenu),(cn("二级菜单二"),submenu2),))]
#****代码结束****讲解:
我们要注意的就是appuifw.app.menu这段代码.我想这里没有太多需要解释的,应该都能看懂了吧.使用的时候就自己往里套就可以,因为我都是这样,自己写的话会被那些括号搞到头晕.呵呵.
要说明一下的是:
如果你的二级菜单里只有一项,那么一定要记得在后面加上逗号.就是下面这样:
appuifw.app.menu=[(cn("一级菜单’),((cn("二级菜单一"),submenu),))]这里最后面的那个逗号不能省略,否则打开软件之后就会退出,你可以自己试一下.
写二级菜单的时候我经常是这样写:
appuifw.app.menu=[\
(cn("一级菜单"),\
(\
(cn("二级菜单一"),submenu),\
(cn("二级菜单二"),submenu2),\
))\
]
这里你会看到很多\符号.因为我把每一级菜单都单独一行写,这样比较方便修改,由于PY不能随便的换行,所以这里要用\符号来告诉它:
这里是和下一行相连的.这是转义符,呵呵.有时候你觉得写在一行太长的话就应该用这个方法来把它们分成N行去写.
那么,如果我们想在一级菜单里再添加退出这个功能怎么办?
看代码:
appuifw.app.menu=[\
(cn("一级菜单"),\
(\
(cn("二级菜单一"),submenu),\
(cn("二级菜单二"),submenu2),\
)),\
(cn("退出"),exit)]
新知识就说这些了,说些题外话:
最近些天乱七八糟的事弄的很烦躁,手机不小心掉地上也摔出问题了,手机读不出存储卡了,我拆开检查一下没有发现什么异常,有懂行的朋友请帮个忙:
)现在只能用手机那点可怜的存储来装上PYTHON写教程.
还有以后不要再跟我说什么拜师的事,我现在还是新手,大家一起学习,我还没到为人师那种造诣,所以请免开尊口了.
老规矩,有问题在本帖回复,但是在写代码的时候千万要仔细,不要每次都是弄些少括号之类的低级错误来问.
[教程]跟米饭学PyS60编程-程序界面(4.1.4)
4.1.4文本输入框
本来想结束这一节直接讲解图片界面的.但是忽然发现还有好多东西没有说.
这一节我们讲一下文本输入相关的.会有很多内容.
1.输入文本并显示出来.
看图片先:
弹出一个文本输入框,然后你在里面输入文字,再然后会弹出一个提示框,把你输入的文字显示出来,不好意思截不到图.
现在我们来看代码:
importappuifw
defcn(x):
returnx.decode("utf-8")
name=appuifw.query(cn("请输入你的名字:
"),"text")
appuifw.note(cn("名字是:
")+name,"info")讲解:
第三行的name可以为随便名称,这个应该都明白了吧?
这里这个name就等于你输入的内容,
尝试一下把它在文本界面输出.试一下,相信你能成功.
以前我们学过appuifw.query(cn("要退出吗?
","query")这个吧.今天学的不过是把后面
的query改成了text.text的意思就是文本,说明这个询问框是让输入文本.这里text还可
以改成number,意思是在输入框中只能输入数字.自己尝试一下.
有时候可能需要在输入框里预置一些文字,这要怎么做呢?
看下面这个代码:
importappuifw
defcn(x):
returnx.decode("utf-8")
name=appuifw.query(cn("请输入你的名字:
"),"text",cn("预置文本"))
appuifw.note(cn("名字是:
")+name,"info")很简单吧,就是在"text"的后面写上你需要预置的文字就可以了.
2.做一个密码输入框
如果用过我做的那个silentmsg的应该知道那个软件在退出的时候需要输入密码,如果输入的是正确的密码就可以退出.
现在来看代码:
importappuifw
defcn(x):
returnx.decode("utf-8")
defconfig():
mima=appuifw.query(cn("请输入密码:
mifan"),"text")
ifmima==u"mifan":
appuifw.app.body=appuifw.Text(cn("密码输入正确"))
else:
appuifw.note(cn("密码错误,请重试"),"error")
config()
config()
点此下载本段代码
讲解:
最后面的这个config()应该不陌生吧.进入程序直接读取config这个函数.在config函数里面我们定义了:
输入密码,如果输入的密码等于mifan,则在界面显示密码输入正确,否则提示密码错误,并重新读取config函数.如果不这样做的话,输入错误密码之后只提示错误并不能重新输入密码了.不明白的话自己体会.
现在大家就可以做一个跟密码有关的软件了.呵呵.但是这种加密方式对懂py的人可能没
用.你就要想更变态的加密方式了:
)
好了.这一讲就到这里,下一讲再进行一下appuifw函数的扫尾工作.然后就可以讲图形界面了.
[教程]跟米饭学PyS60编程-程序界面(4.1.5)
4.1.5一些其他的形式
(一)
1.双文本输入框
图:
代码:
importappuifw
defcn(x):
returnx.decode("utf-8")
a,b=appuifw.multi_query(cn("姓名"),cn("性别"))
appuifw.note(a+b,"info")
2.选择列表
图:
代码:
importappuifw
defcn(x):
returnx.decode("utf-8")
defs():
M=[cn("酷牛"),cn("零蛋"),cn("豆包"),cn("火仔")]
index=appuifw.selection_list(choices=M,search_field=0)
ifindex==0orindex==1:
appuifw.note(M[index]+cn("是好男人"),"info")
else:
appuifw.note(M[index]+cn("是好孩子"),"info")
s()
s()
点击下载此段代码
如果把search_field=0改成=1,就会显示搜索框(在你按键时会显示,就像名片夹里的那个一样),看图:
3.复选列表
图:
代码:
importappuifw
defcn(x):
returnx.decode("utf-8")
M=[cn("酷牛"),cn("零蛋"),cn("豆包"),cn("火仔")]
index=appuifw.multi_selection_list(choices=M,style="checkbox",search_field=1)
点击下载此段代码
如果把style="checkbox"改为style="checkmark",选择标记则是对勾.如图所示.由于我在6670上面测试无法显示.不知道是何原因.因此是在JurgenScheible的教程里引用过来的.
好了.本节没有太多讲解.要靠大家自己结合着图自己思考了.已经学了这么久,该对py有一些理解能力了.
4.1.6一些其他的形式
(二)
现在再把appuifw的提示框所有形式总结一下.图文并茂的.就不过多解释.
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.note(cn("提示"),"info")
效果:
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.note(cn("错误"),"error")
效果:
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.note(cn("完成"),"conf")
效果:
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.query(cn("输入文本"),"text")
效果:
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.query(cn("输入数字"),"number")
效果:
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.query(cn("输入日期"),"date")
效果:
importappuifw
defcn(x):
returnx.decode("utf-8")
appuifw.query(cn("输入时间"),"ti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PyS60 编程 41 选择 列表