• supernova-SN_TV MUF简介


    Muf是mstar用来快速开发Ui的一个接口层,这部分code是封装起来的,在libmuf.so里,因为我们

    不需要直接使用DFB接口去绘制UI,只需要会用MUF提供的接口即可,这部分的架构如下:

     如上架构所示,UI的组成成分一般是widget和container,调用的一般是msrv层的接口.

    同时msrv层也可以通过postEvent的形式向UI层传递消息.

    每个Applet都会由一个App和一个Frame组成,App负责管控生命周期,如app->run,

    app->kill等.

    Frame负责绘制UI和实现与MSRV层的链接,如下:

     上面提到了Frame,widget和container的概念,它们共同组成了我们看得到的UI,下面介绍它们的常用接口:

    1.Frame常用成员

    root_cntr           ==Frame root control 新创建的container和widget都隶属于这个root control

    pFocusedWdg  ==焦点widget的指针,有些时候此指针为空,使用时请慎重

    SetInitialFocus()  ==初始化焦点,先清除所有focus的widget,然后参数如果是一个widget,焦点就会移到这个widget上面,如果是一个container,那么焦点就会移动第一个子widget上面,如果找不到第一个子widget,焦点就丢失了.这个时候pFocusedWdg就为空了,要避免.

    SwitchFocusTo()    ==将焦点移动到一个widget上面,与SetInitialFocus()的区别是没有清楚所有的focus的widget的功能,且参数一般只为widget

    Invalidata()       ==刷新这个Frame的UI,包括这个Frame的全部内容.

    2.Container 常用成员

    Invalidate()   ==刷新这个container的UI,包括这个container内部所有widget

    AddChild()    ==增加一个child,可以是一个widget,也可以是一个container

    RemoveChild()  ==remove 一个Child

    Getchild()     ==通过index获取child的指针

    GetChilddx()   ==通过child指针获取index值

    GetChildCount()   == 获取child总数量

    3.widget常用成员

    Invalidate()   ==刷新widget UI

    SetFlag()    ==设置标志位属性

    QueryFlag()  ==查询标志位属性

    GetAbsRect()  ==获取绝对坐标值

    GetID()   ==获取widget的ID

    Move()    ==移动widget的位置

    Resize()  ==修改widget的size,即宽度和高度

    Hide()  ==隐藏widget

    Show()  == 显示widget

    ReSetRect()   == reset坐标值和宽度高度

  • 相关阅读:
    Cross-Site Scripting(XSS)简介
    nginx查看安装了哪些模块
    Win7系统修改hosts文件不能保存的解决方法
    firefox怎么修改tls协议号
    在Nginx中部署基于IP的虚拟主机
    openssl生成ssl证书
    给kali linux2.0装一个中文输入法
    tenda u1 usb wireless device install driver for kali linux kernal Debian 4.3.3-7kali2 (2016-01-27) x86_64 GNU/Linux
    python2.7.x的字符串编码到底什么鬼?(中文和英文的处理)
    fswatch rsync配置使用 rsync 传输大量细小文件
  • 原文地址:https://www.cnblogs.com/tinglele527/p/14626988.html
Copyright © 2020-2023  润新知