115Py编程学习之二级菜单与文本处理补充.docx
- 文档编号:7470796
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:14
- 大小:251.33KB
115Py编程学习之二级菜单与文本处理补充.docx
《115Py编程学习之二级菜单与文本处理补充.docx》由会员分享,可在线阅读,更多相关《115Py编程学习之二级菜单与文本处理补充.docx(14页珍藏版)》请在冰豆网上搜索。
115Py编程学习之二级菜单与文本处理补充
上一节我们学习了怎样定义函数,定义的函数多了,自然我们就可以在菜单里添加更多的选项,但如果函数太多,在一个一级菜单里排得满满的,这时我们就应当创建二级菜单,这样既美观又方便操作!
但目前我们学到的模块使用方法还不多,不会有太多的菜单选项,在这里,我顺便向大家介绍更多的关于文本处理的方法,让我们看代码吧(可能有点长,但其实都是同一个模板,请麦友耐心地看吧,同样地,我以+代表一个空格)!
#代码开始#
importappuifw
defm(x):
returnx.decode('utf-8')
appuifw.app.body=t=appuifw.Text(m('哇麦欢迎你'))
defa():
+appuifw.note(m('哇麦论坛欢迎你!
'),'info')
defb():
+appuifw.query(m('这是询问功能'),'query')
defc():
+appuifw.query(m('这是提示文本输入功能'),'text')
defd():
+appuifw.query(m('这是输入日期功能'),'date')
defe():
+appuifw.query(m('这里只能输入数字哦!
'),'number')
deff():
+appuifw.query(m('这个是密码输入'),'code')
defg():
+t.add(m('这样可以添加文字哦'))
defh():
+t.set(m(''))
appuifw.app.menu=[(m('一级菜单'),((m('基本提示'),a),(m('询问'),b),(m('提示输入'),c),(m('输入日期'),d),(m('输入数字'),e),(m('输入密码'f),(m('添加文字'),g),(m('清除屏幕'),h)))]
#代码结束#
讲解:
代码看起来很长,但其实都是在反复定义新函数而已,从而菜单的内容才会丰富!
例子里面的函数功能在例子里本来就有解释,大家稍微研究一下就会知道怎么用了,所以在这里就不再多说咯,请谅解!
呵呵!
如果真不懂,就给我留言吧!
我们还是来看一下二级菜单的创建吧!
括号很多,看起来有点繁琐是吗?
记住格式就好了,格式是:
appuifw.app.menu=[(一级菜单,((二级菜单一,动作一),(二级菜单二,动作二)))]在这里需要细心,因为括号多,容易出错!
在这里补充说明一下,并不是所有定义到的函数都要列入菜单选项里!
还有就是,上一节里我们讲到的关于缩进的概念,至于缩进所空的格数,个人有个人的风格,就如我的代码示例里,我就只空了一个格,有些人喜欢空四格,个人觉得那样好麻烦,因为在文本编辑器里要空一个格不能说是很轻松的,那样很浪费时间,而编程应该讲求效率!
最大的缺点是,如果函数里面又有需要定义的函数,那么那个函数的主块就要空4*2=8格了,想想那样会多么麻烦啊!
好了,这一节又要告一段落了,下面将有更精彩的内容哦…….
二级菜单效果图
importappuifw
defm(x):
returnx.decode('utf-8')
appuifw.app.body=t=appuifw.Text(m('哇麦欢迎你'))
defa():
appuifw.note(m('哇麦论坛欢迎你!
'),'info')
defb():
appuifw.query(m('这是询问功能'),'query')
defc():
appuifw.query(m('这是提示文本输入功能'),'text')
defd():
appuifw.query(m('这是输入日期功能'),'date')
defe():
appuifw.query(m('这里只能输入数字哦'),'number')
deff():
appuifw.query(m('这个是密码输入'),'code')
defg():
t.add(m('这样可以添加文字哦'))
defh():
t.set(m(''))#清除屏幕内容
appuifw.app.menu=[(m('一级菜单'),((m('基本提示'),a),(m('询问'),b),(m('提示输入'),c),(m('输入日期'),d),(m('输入数字'),e),(m('输入密码'),f),(m('添加文字'),g),(m('清除屏幕'),h)))]
1.1.6PY编程学习之文字效果处理
大家平时看到的文字也都太单调了吧!
黑色,方正,除非你换字库!
今天就教大家处理文字的效果吧,包括字体处理和颜色处理。
好了,看代码!
#代码开始#
importappuifw
fromgraphicsimport*
defm(x):
returnx.decode('utf-8')
appuifw.app.body=a=b=c=d=e=f=appuifw.Text()
a.color=0x0000ff
a.style=appuifw.HIGHLIGHT_SHADOW
a.add(m('哇麦论坛欢迎你!
'))
defa1():
+b.style=appuifw.STYLE_BOLD#粗体
+b.add(m('\n哇麦论坛欢迎你!
'))
defa2():
+c.style=appuifw.HIGHLIGHT_ROUNDED#抹黑字体
+c.add(m('\n随缘情恋教编程'))
defa3():
+d.style=appuifw.STYLE_UNDERLINE#下划线
+d.add(m('\n哇麦智能'))
defa4():
+e.style=appuifw.STYLE_ITALIC#斜体字
+e.add(m('\n诚邀大家学编程!
'))
defa5():
+f.style=appuifw.STYLE_STRIKETHROUGH#删除线
+f.add(m('\n哇麦崛起'))
appuifw.app.menu=[(m('一级菜单一'),((m('粗体'),a1),(m('抹黑字体'),a2),(m('下划线'),a3))),(m('一级菜单二'),((m('斜体'),a4),(m('删除线'),a5)))]
appuifw.app.title=m('字体处理')
#代码结束#(br)讲解:
在这里,处理字型效果就要借助graphics这个模块了,这个模块是专门处理关于图形界面的,以后会讲到!
所以我在一开始就引进了这个模块,fromgraphicsimport*表示从graphics模块中引进其所有函数,不懂没关系,你就照着这么做吧。
再看:
appuifw.app.body=a=b=c=d=e=f=appuifw.Text()为什么中间插入了这么多的字母和等号呢?
继续看我下面的讲解吧!
a.color=0x0000ff表示对字体设置颜色(在这里是蓝色),如果想换成其他颜色,那就更改等号后面的代码就行了!
哪里有这些颜色代码呢?
以后我整理一下再发上来吧!
先发几个给大家(0xff0000代表红色,0x00ff00浅绿色,0x333333白色,0黑色)a.style=appuifw.HIGHLIGHT-SHADOW,这里就设置了a的文字风格,为阴影效果,其中style翻译为中文就是风格的意思!
有点难记?
HIGHLIGHT-SHADOW翻译为中文是高亮阴影的意思,其中SHADOW是阴影的意思。
接着:
a.add(m(‘哇麦论坛欢迎你!
’))设置了a的风格和颜色后总该给一些文字给他表现一下效果吧!
所以就给他添加几个为了显示效果的文字,关于添加文字,上一节已经讲到!
那么为什么不改为预设呢?
因为在前面我们用等号连接了很多字母,这些字母都等价于你输入的文本内容,当然这就包括了你添加的内容,如果你要预设,而在下面我将会给每个字母设置其字体风格,那么这预设的内容应该要哪一种风格呢,系统确定不了,于是就会出错!
下面我们就开始定义函数了,我在这里再提醒大家一遍,要注意缩进,还有就是,appuifw.STYLE_BOLD表示应用了appuifw这个模块中的STYLE_BOLD这个函数,而这个函数就是用来处理字体风格的!
b.style=appuifw.STYLE_BOLD这样就设置了b的字体风格,在后面又添加了为其显示效果用的文字!
接下来的函数的定义依此类推,在创建菜单的时候,为了承接上一节的内容,我特意设置了两个二级菜单,上一节还不懂的,在这里再研究一下吧!
appuifw.app.title=m('字体处理'),最后还给这个软件起了个名字,呵呵!
效果图
importappuifw
fromgraphicsimport*
defm(x):
returnx.decode('utf-8')
appuifw.app.body=a=b=c=d=e=f=appuifw.Text()
a.color=0x0000ff
a.style=appuifw.HIGHLIGHT_SHADOW
a.add(m('哇麦论坛欢迎你!
'))
defa1():
b.style=appuifw.STYLE_BOLD#粗体
b.add(m('\n哇麦论坛欢迎你!
'))
defa2():
c.style=appuifw.HIGHLIGHT_ROUNDED#抹黑字体
c.add(m('\n随缘情恋教编程'))
defa3():
d.style=appuifw.STYLE_UNDERLINE#下划线
d.add(m('\n哇麦智能'))
defa4():
e.style=appuifw.STYLE_ITALIC#斜体字
e.add(m('\n诚邀大家学编程!
'))
defa5():
f.style=appuifw.STYLE_STRIKETHROUGH#删除线
f.add(m('\n哇麦崛起'))
appuifw.app.menu=[(m('一级菜单一'),((m('粗体'),a1),(m('抹黑字体'),a2),(m('下划线'),a3))),(m('一级菜单二'),((m('斜体'),a4),(m('删除线'),a5)))]
appuifw.app.title=m('字体处理')
二级菜单图
1.1.7PY编程学习之列表界面与if语句的使用
在之前的学习中,我们启动程序后的界面都是一个文本框,够乏味的吧?
其实appuifw这个模块可以为我们提供三种基本界面,分别是:
Text(文本界面)、Listbox(列表界面)和Canvas(画布界面)。
其实appuifw这个模块中还有一个Form函数可以把界面打造得更有个性!
我们之前学习的就是文本界面,今天就让我们来学习新的界面—列表界面,同时我们也将学习if语句的使用!
先看代码一向是我的习惯讲法,好的,马上开始,看代码(旧习惯,+代表空格)。
#代码开始#
importappuifw
defm(x):
returnx.decode("utf-8")
defa():
+M=[m('哇麦智能论坛'),m('八神论坛'),m('冰冰论坛'),m('乐迅论坛')]
+index=appuifw.selection_list(choices=M,search_field=1)
+ifindex==0:
++appuifw.note(M[index]+m('欢迎你!
'),'info')
+else:
++appuifw.note(M[index]+m('是外坛!
'),'info')
+appuifw.app.title=m('列表界面')
+a()
a()
#代码结束#
讲解:
在这里,先得给大家介绍一下有关列表的知识!
列表的格式是[*,*,*],其中*代表列表中的元素,当我们要访问列表中的元素的时候,例如列表中的第一个元素,就表示成[0],第二个元素就表示成[1],(注:
系统是从0开始计数的!
)我们可以用相关语句向元素中增加或删除元素,还可以进行排序,倒序!
例如代码中的列表:
M=[m('哇麦智能论坛'),m('八神论坛'),m('冰冰论坛'),m('乐迅论坛')],其第一个元素就是m('哇麦智能论坛'),如果想引用这个元素,就表示成M[0],例子中的是M[index],但我们已经为index赋了值,他表示一个数字,所以M[index]还是访问了列表中的元素,这个大家应该可以很轻松就能够理解的!
继续:
index=appuifw.selection_list(choices=M,search_field=1)这段代码将index与列表中的选项一一对应了起来,还是翻译一下吧!
index(指标)、selection_list(选项列表)、choice(选择项目)、search_field(查找范围),列表界面就是应用了appuifw模块中的selection_list函数,choices=M表示了在界面上供选择的列表内容,为M这个列表中的元素,这些元素将在界面上排成很多列,从上到下,search_field=1表示了是否查找列表中的项目,就像我们进入名片夹中那样去查找联系人那样,0表示不查找,1表示查找,顺便说一下,在编程语言中,绝大多数情况下0表示否定(falsh),1表示肯定(true)!
如果列表项目不多,建议你不查找,我在示例代码里写了1是为了展示其效果而已!
下面我么就开始使用if语句了,if翻译为中文就是“如果”的意思,主要是用来实现判断的作用。
ifindex==0:
意思就是如果我们选中列表中的第一项,在实际执行界面上也就是如截图中的“哇麦智能论坛”,那么我们就执行相关的任务,要注意,在这里index和0是用两个等号连接起来的,0后面还要有一个“:
”号,任何一个标点都不可以马虎啊!
相关的任务就是其下面的代码,为一个简单的提示。
你注意到了吗,在这里的缩进是怎样的?
根据我以前的说法,appuifw.note(M[index]+m('欢迎你!
'),'info')就属于“第三级”了!
其中的M[index]表示什么大家应该知道了吧?
else翻译为中文就是“另外”的意思,但他在这里有“否则”的意思,也就是如果之前的if语句判断后没有通过,那么就转为执行下面的语句而绕过if语句的内容,下面同样是一个简单的基本提示任务!
代码的最后有两个a(),第一个a()的作用是:
在系统判断并执行相关的任务之后让他再回到这个列表界面,因为系统默认的界面是文本界面,如果不让他重新回到列表界面,执行了相关任务后界面就会变回乏味的文本界面了。
如果我们定义了一个函数,命名为b,那么b()就表示让这个函数运行!
最后一个又有什么作用呢?
注意到第一个a(),他本身是定义在a()这个函数里面的,如果我们没有第二个a(),即使你定义了他他也不会运行,就等于白定义了,就像你造了一艘船,但却没有机会拿去海洋里使用!
同时在这里你也可以体会得到缩进的意义。
在这里有一个问题,就是关于appuifw.note(M[index]+m('欢迎你!
'),'info')这个语句的,用+号可以把字符串连接起来,但这不是问题所在!
问题就是我们可不可以去掉M[index]+这一段,就让他显示我想让他显示的内容就行了,没有必要与列表的内容有关联,理论上来讲是完全可行的,但我在我的70上尝试过去掉,但结果是按退出键就执行else的相关任务,也就是没办法退出,最终只能硬退!
但只要那两段代码与列表内容有关联就可以正常运行了!
但还不知道是怎么回事!
好了,都讲那么多了,今天就讲到这里吧!
效果图
importappuifw
defm(x):
returnx.decode("utf-8")
defa():
M=[m('哇麦智能论坛'),m('八神论坛'),m('冰冰论坛'),m('乐迅论坛')]
index=appuifw.selection_list(choices=M,search_field=1)
ifindex==0:
appuifw.note(M[index]+m('欢迎你!
'),'info')
else:
appuifw.note(M[index]+m('是外坛!
'),'info')
appuifw.app.title1.1.8Py编程学习之列表界面
(二)
=m('列表界面')1.1.8Py编程学习之列表界面
(二):
上一节我们学着怎样创建了列表界面!
今天将补充更多的关于列表界面的内容!
一个是复选列表,另一个是带有图片描述的列表!
有点模糊吧?
看最后的截图就会知道是什么了。
所谓复选列表也就是具有多个选择的列表,如截图就选中了两个,当然我们可以选中全部选项!
而带有图片描述的列表其实就是多了一副附在文字左边的图片(如截图所示)。
好了,先来看复选列表的代码(+代表一个空格)!
#代码开始#
importappuifw#引入模块
defm(x):
returnx.decode('utf-8')
M=[m('¤随缘情恋¤'),m('¤刹那芬华尽¤'),m('¤为你变乖¤'),m('¤无与/aiq恒比¤')]#创建列表
index=appuifw.multi_selection_list(choices=M,style='checkbox',search_field=1)#将索引与复选列表对应
#代码结束#
讲解:
代码看起来很熟悉吧!
上一节我们用的是appuifw模块中的selection_list函数,在这里利用的是multi_selection_list这个函数,multi就有“多元”的意思!
为了简化代码,我就不再为每个选项赋上相应的响应事件了。
也就是当你选中列表中的选项并按确定时系统是没有反应的,而是直接退出了!
当然,你可以按照上一节关于if语句的用法为这些列表选项赋上相应的响应事件,例如弹出一个基本的提示窗口。
这段代码与之前相差最大的地方是index=appuifw.mult
i_selection_list(choices=M,style='checkbox',search_field=1)这一段代码!
appuifw.multi_selection_list()表示调用了appuifw这个模块中的multi_selection_list()这个函数!
括号中为相应的参数,其中choices=M和search_field=1在上一节讲解过了,style='checkbox'定义了复选的风格,如截图的是在复选框里打叉,style翻译为中文是“风格”的意思,另外还有一种风格是在列表项目后面打勾进行标记,为style='checkmark',我的70显示不了这种风格,麦友可以自测!
好了,关于复选列表的就讲那么多!
接着再来看带有图片描述的列表界面的代码(如果代码跨页,建议全文查看!
)
#代码开始#
importappuifw
fromgraphicsimport*#借用该模块引入图片
defm(x):
returnx.decode('utf-8')
icon1=appuifw.Icon(u'z:
\\system\\data\\avkon.mbm',28,29)#图片一位置
icon2=appuifw.Icon(u'z:
\\system\\data\\avkon.mbm',40,41)#图片二位置
list=[(m('信号'),icon1),(m('电池'),icon2)]
defa():
#定义响应事件
+appuifw.note(m('哇麦论坛欢迎你!
'),'info')
appuifw.app.body=appuifw.Listbox(list,a)
#代码结束#
讲解:
先来了解一下MBM的知识!
塞班有一种特殊的压缩图片格式就做mbm,它包含了多副位图,通过编号调
a()用所需图片,每张位图包含一张彩色图和其相应的蒙版图!
本示例代码中,引用相关描述的图片就要借用到graphics这个处理图像方面的模块了,所以从一开始就引进了appuifw和graphics这两个模块。
icon1=appuifw.Icon(u'z:
\\……',28,29),在这里我们通过appuifw模块中的Icon函数调用了mbm图像中的位图,也正是这个函数需要引进graphics模块进行辅助,他的功能的实现依赖于graphics模块!
很明显,u'z:
\\system……'指明了要调用的mbm文件的完整路径,28,29分别是所调用mbm文件中其中一个位图的彩色图及其相应的蒙版图的位置编号,概括起来格式就是:
描述图片=appuifw.Icon(mbm文件完整路径,彩色图编号,相应蒙版图编号)。
紧接着我们就可以创建一种新形的列表了,正如代码中所呈现出的,可以概括出其格式为:
[(列表一文字,描述图片一),(列表二内容,描述图片二),……]在下面定义界面类型时需要一个响应事件,所以我简单定义了一个函数a,为一个基本提示!
appuifw.app.body=appuifw.Listbox(list,a)定义了界面类型为Listbox(列表界面),怎样定义?
再来概括一下格式吧:
appuifw.app.body=appuifw.Listbox(相应列表,响应事件)。
在截图中,为了能够更好地显示效果,我给列表增加多了三个元素,为什么示例代码中要调用那两张mbm图呢?
简单,诺基亚的机中都有这两个文件啊!
另外我加进去的我不能保证你们的手机都有,所以没有写进去!
学习的时候,你可以针对自身的具体情况增加元素,因为格式已经给出,只不过是“依葫芦画瓢而已”!
好了,今天就到此为止!
复选列表
附加图片列表
复选列表代码
a()#随缘情恋
importappuifw#引入模块
defm(x):
returnx.decode('utf-8')
M=[m('¤随缘情恋¤'),m('¤刹那芬华尽¤'),m('¤为你变乖¤'),m('¤无与/aiq恒比¤')]#创建列表
index=appuifw.multi_selection_list(choices=M,style='checkbox',search_field=1)#将索引与复选列#表对应
图片描述列表示例代码
#随缘情恋
importappuifw
fromgraphicsimport*
defm(x):
returnx.decode('utf-8')
icon1=appuifw.Icon(u'z:
\\system\\data\\avkon.mbm',28,29)
icon2=appuifw.Icon(u'z:
\\system\\data\\avkon.mbm',40,41)
list=[(m('信号'),icon1),(m('电池'),icon2)]
defa():
appuifw.note(m('哇麦论坛欢迎你!
'),'info')
appuifw.app.body=appuifw.Listbox(list,a)
1.1.9Py编程学习之定义左右键名与定义右键
.1.9PY编程学习之定义左右键名称及定义右键:
在文本界面里,左键的名称是“选项”,右键的名称是“退出”,在列表界面里又分别是“确定”、“取消”。
有时我们想让他们变成我们想要的名字以显示我们的个性,今天就来教大家怎样定义左右键名称!
看代码!
#代码开始#
importappuifw
importuitricks
fromkey_tricksimport*
uitricks.set_text('哇麦智能'.decode('utf-8'),EAknSoftkeyOptions)#定义左键名称
uitricks.set_text('我要回家'.decode('utf-8'),EAknSoftkeyExit)#定义右键名称
defexit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 115 Py 编程 学习 二级 菜单 文本 处理 补充