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

----------------
折叠界面补充
--------------------

应のBlog

由于大家很着急知道文本处理的代码,因此折叠界面这节被跳过去了,现在回来继续说.呵呵

4.3.1-折叠界面补充

其实这节还是折叠界面的代码,只是增加了一些新鲜的东西.
先看图:

界面一:


界面二:


界面三:


上一讲的几个界面全部都是文本输入的界面,这次第一个界面加上了图标的 Listbox .第二个界面是 文本界面 ,第三个界面是 图形界面 .
看代码:
import appuifw
from graphics import *
def cn(x):return x.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)
icon3 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 30, 31)
icon4 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 32, 33)
icon5 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 34, 35)
icon6 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 36, 37)
icon7 = appuifw.Icon(u"z:\\system\\data\\avkon.mbm", 38, 39)

list = [(cn("信号"), icon1),
        (cn("电池"), icon2),
        (cn("G"), icon3),
        (cn("已经联网"), icon4),
        (cn("联网断开"), icon5),
        (cn("信号条"), icon6),
        (cn("电量条"), icon7)]

def action():
    appuifw.note(cn("米饭教程"),"info")

app1 = appuifw.Listbox(list,action)

app2 = appuifw.Text(u"Happy New Year")

def app_3():
    img=Image.new((176,208))
    img.rectangle((20,10,150,150),0)
    img.point((50.,150.),0xff0000,width=40)
    img.ellipse((100,150,150,180),0x0000ff)
    img.text((40,80), cn("广告位招商"),0x0000ff,u"CombinedChinesePlain12")

    def handle_redraw(rect):
        canvas.blit(img)
    canvas = appuifw.Canvas(event_callback=None, redraw_callback=handle_redraw)
    appuifw.app.body = canvas
    appuifw.app.menu=[(cn("示范目录"),lambda:appuifw.note(cn("正常"),"info"))]

def exit_key_handler():
    appuifw.app.set_exit()

def handle_tab(index):
    if index == 0:appuifw.app.body = app1
    if index == 1:appuifw.app.body = app2
    if index == 2:app_3()

appuifw.app.set_tabs([cn("界面一"),cn("界面二"),cn("界面三")],handle_tab)

appuifw.app.title = cn("折叠界面")

appuifw.app.body = app1

appuifw.app.exit_key_handler = exit_key_handler


点击下载代码

讲解:

先说一下定义的那些 icon(图标) . appuifw.Icon(MBM文件路径, MBM中图片位置1, 2)
玩机比较多的人应该知道 mbm 是由很多图片组成的,这里为什么要用到两张图片呢? 我的理解是有一张是蒙板.如果你自己要做这样的 mbm 文件的话,请去网上搜索 mbm 制作教程,本教程不讲解.
然后下面定义的 list 与以前的定义方法有所不同,因为多了图标,注意其格式就好了.
下面也没有什么需要讲解的.

需要注意的是:由于我们只是在 app_3 里面设置了目录选项 (menu) ,而前两个界面没有设置,因此我们在刚刚进入软件的时候是看不到目录选项的,只有切换到了 app_3 之后,软件才加载了 menu ,然后切换回前两个界面的时候,还是可以看到这个目录.为什么在 app_3 里定义的目录到 app2 界面还是能够显示呢?因为 app2 里面没有设置目录嘛.呵呵,如果你想让每个界面都有独立的目录,那就在定义每个界面的时候也同时定义 menu就可以了.

本来想继续写一下表格(form)的教程,但是忽然发现这个东西还挺深奥,刚研究完.明天再写教程吧.

下一编
上一编

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